Articles of préprocesseur

Ssortingngify C prétraitement

Ceci est mon premier message. Par conséquent, si je suis trop vague ou si je donne des informations que tout le monde suppose de manière intuitive, merci de me le faire savoir. Je suis très novice en écriture en C et j’essaie simplement de mieux comprendre le prétraitement. gcc -Wall -std=c99 -DSEED=argument un programme simple […]

Préprocesseur C: ssortingngize macro et macro d’identité

Je veux savoir la raison derrière la sortie de ce code. Je ne pouvais pas venir avec une réponse. #define f(a,b) a##b #define g(a) #a #define h(a) g(a) void main() { printf(“%s %s”,h(f(1,2)),g(f(1,2))); } PS: la sortie est 12 f(1,2) . Je pensais que c’était 12 12 ou f(1,2) f(1,2) .

L’exécution du programme commence-t-elle toujours à partir de main en C?

L’exécution du programme doit-elle commencer à partir de main, ou l’adresse de départ peut-elle être modifiée? #include void fun(); #pragma startup fun int main() { printf(“in main”); return 0; } void fun() { printf(“in fun”); } Ce programme imprime in fun avant in main .

C Macros pour créer des chaînes

Titres alternatifs (pour faciliter la recherche) Convertir un jeton de préprocesseur en chaîne Comment créer une chaîne de caractères à partir de la valeur d’une macro C ? Question originale Je voudrais utiliser C #define pour construire des chaînes littérales au moment de la compilation. La chaîne sont des domaines qui changent pour le débogage, […]

# et ## dans les macros

#include #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { printf(“%s\n”,h(f(1,2))); printf(“%s\n”,g(f(1,2))); return 0; } En regardant simplement le programme, on “pourrait” s’attendre à ce que la sortie soit la même pour les deux déclarations printf. Mais lors de l’exécution du programme, vous l’obtenez en tant que: bash$ ./a.out 12 f(1,2) bash$ […]