Я новичок в C и пытаюсь использовать #ifdef, чтобы проверить, является ли введенный пользователем аргумент командной строки "-c" или нет. Это код:
int i, v = 0, size = argc - 1;
char *str = (char *)malloc(v);
for(i = 1; i <= size; i++) {
str = (char *)realloc(str, (v + strlen(argv[i])));
strcat(str, argv[i]);
strcat(str, "");
}
#ifdef DEMO
if (!strcmp(str, "-c") == 0)
printf("This is just a demo!\n");
#else
if (strcmp(str, "-c") == 0)
printf("Hello %s", str);
#endif
Проблема в том, что он буквально пропускает первый оператор, где printf - «Это просто демонстрация», то есть, если это не -c, то ничего не отображается, а еслиэто -c это говорит "Привет -c"