Articles of gcc

pourquoi la signature de char n’est-elle pas définie en C?

La norme C stipule: ISO / IEC 9899: 1999, 6.2.5.15 (p. 49) Les trois types char, char signé et non signé sont collectivement appelés types de caractères. L’implémentation doit définir char pour avoir la même plage, la même représentation et le même comportement que char signé ou non signé. Et en effet, gcc définit cela […]

Comment les arguments variables sont-ils implémentés dans gcc?

int max(int n, …) J’utilise la convention d’appel cdecl selon laquelle l’appelant nettoie la variable après le retour de l’appelé. Je suis intéressé à savoir comment fonctionnent les macros va_end , va_start et va_arg ? L’appelant transmet-il l’adresse du tableau d’arguments en tant que deuxième argument à max?

Un tableau étrange initialise une expression?

Quel est le sens du code suivant? Le code provient de la suite de tests de régression de GCC. static char * name[] = { [0x80000000] = “bar” };

Comment comstackr et exécuter un programme C simple avec Sublime Text 2?

Je veux comstackr un programme C simple avec GCC. Que dois-je mettre dans le fichier de construction sublime pour le faire?

Pourquoi scanf (“% hhu”, char *) écrase-t-il les autres variables lorsqu’elles sont locales?

Le titre dit tout. J’utilise GCC 4.7.1 (fourni avec CodeBlocks) et j’ai rencontré un problème étrange. Considère ceci: int main() { unsigned char a = 0, b = 0, c = 0; scanf(“%hhu”, &a); printf(“a = %hhu, b = %hhu, c = %hhu\n”, a, b, c); scanf(“%hhu”, &b); printf(“a = %hhu, b = %hhu, c […]

pourquoi GCC __builtin_prefetch n’améliore pas les performances?

J’écris un programme pour parsingr un graphique de réseau social. Cela signifie que le programme nécessite de nombreux access en mémoire aléatoire. Il me semble que prefetch devrait aider. Voici un petit extrait du code de lecture des valeurs des voisins d’un sumt. for (size_t i = 0; i < v.get_num_edges(); i++) { unsigned int […]

Pourquoi la division entière par -1 (une négative) donne-t-elle FPE?

J’ai pour mission d’expliquer certains comportements apparemment étranges du code C (tournant sous x86). Je peux facilement compléter tout le rest mais celui-ci m’a vraiment dérouté. -2147483648 code 1 sorties -2147483648 int a = 0x80000000; int b = a / -1; printf(“%d\n”, b); Le fragment de code 2 ne génère rien et donne une Floating […]

A quel compilateur devrais-je faire confiance?

Ce sera une question de débutant, mais j’essayais de travailler sur un petit exercice en langage C (pas en C ++ ) et je rencontrais des problèmes. Disons que je voulais utiliser un tableau dans une méthode dont la taille dépendait de l’un des arguments: void someFunc(int arSize) { char charArray[arSize]; // DO STUFF … […]

Dessiner un personnage dans la mémoire VGA avec l’assemblage en ligne GNU C

J’apprends à faire de la programmation VGA de bas niveau sous DOS avec C et assemblage en ligne. En ce moment, je suis en train de créer une fonction qui affiche un caractère à l’écran. Ceci est mon code: //This is the characters BITMAPS uint8_t characters[464] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x50, 0x50,0x00,0x00,0x00,0x00,0x00,0x50,0xf8,0x50,0x50,0xf8,0x50,0x00,0x20,0xf8,0xa0, 0xf8,0x28,0xf8,0x00,0xc8,0xd0,0x20,0x20,0x58,0x98,0x00,0x40,0xa0,0x40,0xa8,0x90, 0x68,0x00,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x20,0x40,0x40,0x40,0x40,0x20,0x00, 0x20,0x10,0x10,0x10,0x10,0x20,0x00,0x50,0x20,0xf8,0x20,0x50,0x00,0x00,0x20,0x20, 0xf8,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x60,0x20,0x40,0x00,0x00,0x00,0xf8,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x08,0x10,0x20,0x40,0x80, […]

Comstackr une source C via javacode en utilisant gcc

J’essaie de comstackr le fichier c avec du code java en utilisant la méthode exec Ssortingng inputFilePath = “\”D:\\Soft\\WebApplication\\build\\web\\code\\Demo.c\””; Ssortingng[] commands = {“cmd”, “/c”, “gcc”,inputFilePath,”-o”,”Demo”}; Process p=Runtime.getRuntime().exec(commands); DataInputStream din=new DataInputStream(p.getErrorStream()); Ssortingng s=””,temp; while((temp=din.readLine())!=null) s+=temp; if(s.equals(“”)){ cf.setResult(“No Syntax Error”); } else cf.setResult(s); mais il ne génère pas de fichier demo.exe