Estou compilando meu programa que rodará em linux gcc 4.4.1 C99.
Eu estava apenas colocando meu #defines em separar o código que será compilado no Windows ou Linux. No entanto, recebi este erro.
error: macro names must be identifiers.
Usando este código
#ifdef(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
No entanto, quando mudei para este, o erro foi corrigido:
#if defined(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Eu só estava me perguntando por que recebi esse erro e por que os #defines são diferentes?
Muito Obrigado,
||
#if defined(NAME)
desde o início e evitado criar uma#ifdef
declaração.e
são os mesmos,
mas para fazer várias coisas ao mesmo tempo, você pode usar definido, como
fonte
#ifdef
verifica se uma macro com esse nome foi definida,#if
avalia a expressão e verifica se há um valor verdadeirofonte
#if defined
e#ifdef
.