Resultados da pesquisa a pedido "c-preprocessor"

3 a resposta

# e ## em macros

#include <stdio.h> #define f(a,b) a##b #define g(a) #a #define h(a) g(a) int main() { printf("%s\n",h(f(1,2))); printf("%s\n",g(f(1,2))); return 0; }Apenas olhando para o programa, "pode" esperar que a saída seja a mesma para as duas instruções ...

5 a resposta

-Werror faz com que o compilador pare em #warning. O que posso fazer para evitar isso?

Primeiro, euquerpara parar em avisos. Mas também quero imprimir algumas mensagens informativas (como "Volte e implemente isso!"). Infelizmente, meu compilador não suporta#info, #message, #pragma message(), etc. Eu sei que ...

1 a resposta

Saída do pré-processador no Qt Creator

Estou compilandoCcódigo no Qt Creator e preciso examinar a saída do pré-processador. Adicionei o sinalizador -E ao make, mas não vejo os arquivos * .i: mingw32-make.exe -e -w in \qt\qt-build-desktopPor favor ajude.

1 a resposta

Operador de pré-processador _Pragma no Visual C ++

Existe algo como o operador ANSI C_Pragma no Visual C ++? Por exemplo, estou tentando definir a seguinte macro: #ifdef _OPENMP #define PRAGMA_IF_OPENMP(x) _Pragma (#x) #else // #ifdef _OPENMP #define PRAGMA_IF_OPENMP(x) #endif // #ifdef ...

3 a resposta

Substituir macro da linha de comando

Gostaria de substituir uma macro da linha de comando. Em algum lugar da minha fonte, há uma definição como esta: #define MY_FOO 1O que eu gostaria é definir o valor dessa macro quando compilar meu programa: g++ -DMY_FOO=2 ...Mas, então, a macro ...

1 a resposta

Como interpretar linhas pré-fixadas em # na saída do pré-processador C?

A seguir está o código do hello.c: #include <stdio.h> int main (void) { printf ("Hello, world!\n"); return 0; }Eu usei o comandogcc -E hello.c pré-processá-lo e obteve a seguinte saída: # 1 "hello.c" # 1 "<built-in>" # 1 "<command-line>" # ...

1 a resposta

strlen no pré-processador C?

É possível implementarstrlen() noCpré-processador? Dado: #define MYSTRING "bob"Existe alguma macro de pré-processador,X, o que gostaria de dizer: #define MYSTRING_LEN X(MYSTRING)

1 a resposta

É possível passar um inicializador entre chaves como um parâmetro de macro?

Eu tenho uma função que eu chamo assim: literal<long[2]>({1, 2});Quero escrever uma macro que se expanda para esta declaração, por exemplo: MYMACRO(long[2], {1, 2})Infelizmente, o pré-processador não está ciente da correspondência entre chaves ...

4 a resposta

Como executo o pré-processador apenas nos cabeçalhos locais?

Quero que o pré-processador leia as inclusões dos cabeçalhos locais, mas ignore as inclusões dos cabeçalhos do sistema. Em outras palavras, como faço para que o pré-processador pule as diretivas de pré-processamento do formulário: #include ...

2 a resposta

Qual é o valor de uma constante indefinida usada em #if?

Meu pré-processador parece assumir que constantes indefinidas são 0 com o objetivo de avaliar#if condições. Isso pode ser invocado ou constantes indefinidas fornecem um comportamento indefinido?