Perguntas com a marcação «c-preprocessor»

Um processador de macro textual aplicado antes de compilar programas de linguagem C e C ++. Essa tag também pode ser usada para perguntas sobre outros compiladores / linguagens derivados ou que tenham recursos idênticos, como os #directives em Objective-C ou C #.

8
Sobrecarregando macro no número de argumentos
Eu tenho duas macros FOO2e FOO3: #define FOO2(x,y) ... #define FOO3(x,y,z) ... Quero definir uma nova macro da FOOseguinte maneira: #define FOO(x,y) FOO2(x,y) #define FOO(x,y,z) FOO3(x,y,z) Mas isso não funciona porque as macros não sobrecarregam o número de argumentos. Sem modificar FOO2e FOO3, existe alguma maneira de definir uma macro …
183 c  macros  c-preprocessor 

30
Quando as macros C ++ são benéficas? [fechadas]
Fechado . Esta questão precisa ser mais focada . No momento, não está aceitando respostas. Deseja melhorar esta pergunta? Atualize a pergunta para que ela se concentre apenas em um problema editando esta postagem . Fechado há 2 anos . Melhore esta pergunta o pré-processador C é justificadamente temido e …



6
Uso de __FILE__, __LINE__ e __FUNCTION__ em C ++
Presumindo que o seu compilador C ++ apoia-los, há alguma razão em particular não para uso __FILE__, __LINE__e __FUNCTION__para fins de depuração registro e? Estou preocupado principalmente em fornecer ao usuário dados enganosos - por exemplo, relatar o número ou a função da linha incorreta como resultado da otimização - …


10
Alternativa padrão ao truque ## __ VA_ARGS__ do GCC?
Há um problema conhecido com argumentos vazios para macros variadas em C99. exemplo: #define FOO(...) printf(__VA_ARGS__) #define BAR(fmt, ...) printf(fmt, __VA_ARGS__) FOO("this works fine"); BAR("this breaks!"); O uso BAR()acima é realmente incorreto de acordo com o padrão C99, uma vez que se expandirá para: printf("this breaks!",); Observe a vírgula à …


17
"#Include" um arquivo de texto em um programa C como um caractere []
Existe uma maneira de incluir um arquivo de texto inteiro como uma string em um programa C em tempo de compilação? algo como: file.txt: This is a little text file main.c: #include <stdio.h> int main(void) { #blackmagicinclude("file.txt", content) /* equiv: char[] content = "This is\na little\ntext file"; */ printf("%s", content); …

15
Devo usar #define, enum ou const?
Em um projeto C ++ em que estou trabalhando, tenho um tipo de sinalizador que pode ter quatro valores. Essas quatro bandeiras podem ser combinadas. Os sinalizadores descrevem os registros no banco de dados e podem ser: novo recorde registro excluído registro modificado registro existente Agora, para cada registro, desejo …






Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.