157 votes

différence entre #if défini(WIN32) et #ifdef(WIN32)

Je compile mon programme qui fonctionnera sur linux gcc 4.4.1 C99.

Je mettais juste mon #defines pour séparer le code qui sera compilé sur Windows ou Linux. Cependant, j’ai eu cette erreur.

Utilisation de ce code

Cependant, lorsque j’ai changé pour cela, l’erreur a été corrigée:

Je me demandais simplement pourquoi j’avais eu cette erreur et pourquoi les #defines sont différentes?

Merci bien

228voto

user44556 Points 1324

Si vous utilisez #ifdef syntaxe, supprimez la parenthèse.

La différence entre les deux est que ne peut utiliser qu’une seule condition, alors qu’il peut faire des conditionnels composés.

Par exemple dans votre cas :

66voto

neha Points 81
<pre><code></code><p>et</p><pre><code></code></pre><p>sont les mêmes,</p><p>mais pour faire plusieurs choses à la fois, vous pouvez utiliser défini, comme</p><pre><code></code></pre></pre>

33voto

johannes Points 8057

vérifie si une macro portant ce nom a été définie, évalue l’expression et vérifie si une valeur réelle

-4voto

<pre><code></code><p>est correct</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X