J'aimerais pouvoir faire quelque chose comme #print "C Preprocessor got here!" à des fins de débogage. Quelle est la meilleure façon / la plus portable de faire cela?
J'aimerais pouvoir faire quelque chose comme #print "C Preprocessor got here!" à des fins de débogage. Quelle est la meilleure façon / la plus portable de faire cela?
Question simple à laquelle je n'ai pas trouvé de réponse sur le net. Dans les macros d'arguments variadiques, comment trouver le nombre d'arguments? Je suis d'accord avec le préprocesseur boost, s'il a la solution. Si cela fait une différence, j'essaie de convertir un nombre variable d'arguments de...
Existe-t-il un moyen d'intégrer une instruction pragma dans une macro avec d'autres instructions? J'essaye de réaliser quelque chose comme: #define DEFINE_DELETE_OBJECT(type) \ void delete_ ## type_(int handle); \ void delete_ ## type(int handle); \ #pragma weak delete_ ## type_ = delete_ ## type...
Cette question a évolué au cours des dernières semaines pour couvrir des problèmes plus généraux avec xcode4 (et la mise à niveau des projets d'anciens xcodes). Cependant, de nombreux problèmes peuvent être résolus en suivant le même ensemble d'instructions. Si vous rencontrez l'un des problèmes...
Partout dans notre base de code C, je vois chaque macro définie de la manière suivante: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define...
Je dois faire quelque chose comme ça en C. Cela ne fonctionne que si j'utilise un caractère, mais j'ai besoin d'une chaîne. Comment puis-je faire ceci? #define USER "jack" // jack or queen #if USER == "jack" #define USER_VS "queen" #elif USER == "queen" #define USER_VS "jack" #endif...
J'ai toujours posé cette question mais je n'ai jamais reçu de très bonne réponse; Je pense que presque tous les programmeurs avant même d'écrire le premier "Hello World" avaient rencontré une phrase comme "macro ne devrait jamais être utilisée", "macro are evil" et ainsi de suite, ma question est:...
J'essaie de comprendre comment écrire une macro qui passera à la fois une représentation littérale de chaîne d'un nom de variable avec la variable elle-même dans une fonction. Par exemple étant donné la fonction suivante. void do_something(string name, int val) { cout << name << ": "...
#define DEFINE_STAT(Stat) \ struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat; La ligne ci-dessus est tirée d'Unreal 4, et je sais que je pourrais la poser sur les forums irréels, mais je pense que c'est une question générale en C ++ qui mérite d'être posée ici. Je comprends que la...
J'essaie de comprendre comment je peux concaténer un #define'd int à une #define' d string en utilisant le préprocesseur C. Mon compilateur est GCC 4.1 sur CentOS 5. La solution devrait également fonctionner pour MinGW. Je voudrais ajouter un numéro de version à une chaîne, mais la seule façon de...
Voici ce que j'essaye de faire: typedef enum { ONE, TWO, THREE } Numbers; J'essaie d'écrire une fonction qui ferait un cas de commutation similaire à ce qui suit: char num_str[10]; int process_numbers_str(Numbers num) { switch(num) { case ONE: case TWO: case THREE: { strcpy(num_str, num); //some...
Comme mentionné dans plusieurs de mes questions précédentes, je travaille via K&R et je suis actuellement dans le préprocesseur. L'une des choses les plus intéressantes - quelque chose que je n'avais jamais su auparavant lors de mes précédentes tentatives pour apprendre C - est l' ##opérateur...
#include <stdio.h> #define decode(s,t,u,m,p,e,d) m##s##u##t #define begin decode(a,n,i,m,a,t,e) int begin() { printf("Ha HA see how it is?? "); } Cela appelle-t-il indirectement main? Comment?
Pourquoi la #ifcondition du code suivant est-elle remplie: #include <iostream> #define VALUE foo int main() { #if VALUE == bar std::cout << "WORKS!" << std::endl; #endif // VALUE
Est-il possible, en utilisant le préprocesseur C / C ++, de compter les lignes d'un fichier source, dans une macro ou une sorte de valeur disponible au moment de la compilation? Par exemple, puis-je remplacer MAGIC1, MAGIC2et MAGIC3dans ce qui suit, et obtenir la valeur 4 en quelque sorte lors de...