複合リテラルとは

投稿日: 2025-05-27 13:44:25

一時的な無名変数を作れる。配列とか構造体でもできる。 計算結果とか直接渡したい時に便利

#include <libc.h>

int main(int argc, char **argv)
{
    if (argc == 2)
    {
        char *s = argv[1];

        while (*s)
        {
            if (*s >= 'a' && *s <= 'z')
                write(1, &(char){'a' + (*s - 'a' + 13) % 26}, 1);
            else if (*s >= 'A' && *s <= 'Z')
                write(1, &(char){'A' + (*s - 'A' + 13) % 26}, 1);
            else
                write(1, s, 1);
        s++;
        }
    }
    write(1, "
", 1);
}

参考:https://marycore.jp/prog/c-lang/compound-literal/