Je pense que ce code et cette erreur sont explicites, mais je ne sais pas pourquoi? Environnement: OS: Mac OS X 10.6.1 Compilateur: i686-apple-darwin10-gcc-4.2.1 code: 1 #include 2 #include 3 #include 4 #include 5 6 int 7 main(int argc, char **argv) 8 { 9 char *ptr, **pptr; 10 struct hostent *hptr; 11 char str[32]; 12 […]
Que se passe-t-il si je souhaite que ces externals soient résolus dans l’exécution avec dlopen? J’essaie de comprendre pourquoi l’inclusion d’un fichier h, avec des vars externes et des fonctions de bibliothèque partagée, dans un programme exécutable en C entraîne un résultat non défini / non résolu. (lors de la liaison) Pourquoi dois-je append l’indicateur […]
On dirait que GCC, avec quelques optimisations, pense que deux pointeurs provenant d’unités de traduction différentes ne peuvent jamais être identiques, même s’ils sont réellement identiques. Code: principal c #include #include int a __atsortingbute__((section(“test”))); extern int b; void check(int cond) { puts(cond ? “TRUE” : “FALSE”); } int main() { int * p = &a […]
J’apprends c99 et après avoir lu sur les structures j’ai trouvé la macro suivante dans le code du kernel Linux : #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f)) Je .. quoi? Usage: #include #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f)) struct book { char title[100]; char author[100]; }; int main(void) { printf(“%lu\n”, FIELD_SIZEOF(struct book, title)); // prints 100 } Voici l’extension […]
Clause de non-responsabilité: l’exemple suivant n’est qu’un exemple factice pour comprendre rapidement le problème. Si vous pensez à un problème du monde réel, pensez à toute programmation dynamic. Le problème: nous avons une masortingce n * m et nous voulons copier les éléments de la ligne précédente comme dans le code suivant: for (i = […]
Voici un code C simple pour un quiz de classe: #include int main() { float a = 2.3; printf(“%d\n”, a); return 0; } Compilé et exécuté sur: Apple LLVM version 6.1.0 ( clang-602.0.53 ) (basé sur LLVM 3.6.0svn) Cible: x86_64 -apple-darwin14.5.0 La sortie de ce code n’est undefined . J’essaie de prédire la sortie en […]
Vous trouverez ci-dessous le code de la solution pour un exercice de la méthode de programmation moderne de KN King. #include int main(void) { int i; float j,x; scanf(“%f%d%f”,&x,&i,&j); printf(“i = %d”,i); printf(“x = %f”,x); printf(“j = %f”,j); } Consortingbution: 12.3 45.6 789 Résultat attendu : i = 45 x = 12.3 j = 0.6 […]
J’écris une bibliothèque C qui utilise un inheritance simple orienté object un peu comme ceci: struct Base { int x; }; struct Derived { struct Base base; int y; }; Et maintenant je veux passer un Derived * à une fonction qui prend une Base * un peu comme ceci: int getx(struct Base *arg) { […]
Cette partie du manuel de gcc est assez obscure et je ne comprends pas l’utilisation de l’atsortingbut forceinline après plusieurs tentatives. Je définis un object et certaines fonctions pour manipuler cet object. Peu de ces fonctions peuvent utiliser des instructions atomiques et je veux que le compilateur intègre ces fonctions. Cependant, je ne veux pas […]
Disons que j’ai le code C suivant: int32_t foo(int32_t x) { return x + 1; } Ce comportement n’est pas défini lorsque x == INT_MAX . Supposons maintenant que j’ai effectué l’ajout avec l’assemblage en ligne: int32_t foo(int32_t x) { asm(“incl %0” : “+g”(x)); return x; } Question: La version d’assembly en ligne invoque-t-elle toujours […]