#ifdef недоступен (c язык программирования) - PullRequest
0 голосов
/ 02 ноября 2019

Я новичок в 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"

...