Lorsque j’essaie d’assigner un entier de 128 bits dans gcc 4.9.1, un warning: integer constant is too large for its type . Exemple de code int main(void) { __uint128_t p = 47942806932686753431; return 0; } Sortie Je comstack avec gcc -std=c11 -o test test.c et je reçois: test.c: In function ‘main’: test.c:2:19: warning: integer constant […]
J’ai deux fichiers, main.o et modules.o , et j’essaie de les comstackr pour que main.o puisse appeler des fonctions dans modules.o . On m’a explicitement dit de ne pas essayer #include module.o . Je ne sais vraiment pas ce que je devrais faire à la place. J’ai essayé différentes versions de gcc (telles que gcc […]
Il existe un code étrange utilisant VLA (Tableaux de Longueur Variable) qui est traité comme Valid C (C99, C11) par gcc 4.6 $ cat ac int main(int argc,char**argv) { struct args_t{ int a; int params[argc]; // << Wat? // VLA in the middle of some struct, between other fields int b; } args; args.b=0; for(args.a=0;args.a<argc;args.a++) […]
J’ai déjà constaté l’utilisation de l’ atsortingbut gcc __section__ (en particulier dans le kernel Linux) pour collecter des données (généralement des pointeurs de fonction) dans des sections ELF personnalisées. Comment les “éléments” qui sont placés dans ces sections personnalisées sont-ils récupérés et utilisés?
J’essaie d’optimiser avec GCC et les composants insortingnsèques. Considérons par exemple la fonction suivante. void sortingad(float *x, float *y, float *z, const int n) { float k = 3.14159f; int i; __m256 k4 = _mm256_set1_ps(k); for(i=0; i<n; i+=8) { _mm256_store_ps(&z[i], _mm256_add_ps(_mm256_load_ps(&x[i]), _mm256_mul_ps(k4, _mm256_load_ps(&y[i])))); } } Cela produit une boucle principale comme celle-ci 20: vmulps ymm0,ymm1,[rsi+rax*1] […]
Existe-t-il des équivalents intégrés à _countof fournis par d’autres compilateurs, en particulier GCC et Clang? Existe-t-il des formes non macro?
Mon logiciel a un principal pour une utilisation normale et un autre pour les tests unitaires. J’adorerais ça s’il y avait une option à gcc pour spécifier quelle fonction “principale” utiliser.
Je veux comstackr le programme GTK le plus simple. Je peux le comstackr en utilisant la ligne de commande: gcc $(pkg-config –cflags –libs gtk+-3.0) main.c -o main.o Cependant, si j’utilise Make it does not work: CFLAGS=-g -Wall -Wextra $(pkg-config –cflags) LDFLAGS=$(pkg-config –libs gtk+-3.0) CC=gcc SOURCES=$(wildcard *.c) EXECUTABLES=$(patsubst %.c,%,$(SOURCES)) all: $(EXECUTABLES) Il me dit ceci: gcc […]
J’essaie de comstackr un programme C sous Linux. Cependant, par curiosité, j’essaie d’exécuter certaines étapes à la main: j’utilise: l’interface gcc pour produire du code assembleur puis exécutez l’assembleur GNU pour obtenir un fichier object puis reliez-le au runtime C pour obtenir un exécutable fonctionnel. Maintenant, je suis coincé avec la partie de liaison. Le […]
GCC me donne le message d’avertissement suivant lors de la tentative de compilation: las.c:13:18: warning: initializer element is not a constant expression [enabled by default] const int ROWS = pow (2, MESH_K); Les parties de code pertinentes pour cela sont: #define MESH_K 10 #define BUFF_SIZE 30 const int ROWS = pow (2, MESH_K); Je dois […]