>Помедитируйте над следующим кодом и над тем, что выдаёт эта программа.
>
>#include <stdio.h>
>
>#define A(a, b) a##b
>#define B(a, b) (a b)
>Чтобы gcc с максимально поднятым уровнем ворнингов был счастлив, лучше сделать так:
int main(void)
{
const char *abcd = "hello";
...
}
>int main()
>{ char *abcd = "hello";
>
> printf("%s\n", A(ab, cd));
> printf("%s\n", B("ab", "cd"));
>
> return 0;
>}
>
Типичный набор параметров компилятора, который я применяю ежедневно:
-ansi -pedantic -W -Wall -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Winline -Wundef -Wnested-externs -Wcast-qual -Wshadow -Wconversion -Wwrite-strings -ffloat-store -fno-common -O0