#define one 0 #ifdef one printf("one is defined "); #ifndef one printf("one is not defined "); Nesse caso, qual é a função de #ifdefe #ifndef, e qual é a
#define one 0 #ifdef one printf("one is defined "); #ifndef one printf("one is not defined "); Nesse caso, qual é a função de #ifdefe #ifndef, e qual é a
Pergunta simples para a qual não consegui encontrar resposta na rede. Em macros de argumento variadic, como encontrar o número de argumentos? Estou bem com pré-processador boost, se tiver a solução. Se fizer diferença, estou tentando converter o número variável de argumentos da macro para aumentar...
Eu sei disso #define s, etc. normalmente nunca são indentados. Por quê? Estou trabalhando em algum código no momento que tem uma mistura horrível de #defines, #ifdefs, #elses, #endifs, etc. Tudo isso geralmente misturado com o código C normal. O não recuo do #defines torna-os difíceis de ler. E a...
#define DEFINE_STAT(Stat) \ struct FThreadSafeStaticStat<FStat_##Stat> StatPtr_##Stat; A linha acima é tirada do Unreal 4, e eu sei que poderia perguntá-la nos fóruns do irreal, mas acho que essa é uma pergunta geral do C ++ que merece ser feita aqui. Eu entendo que a primeira linha...
Esta questão evoluiu nas últimas semanas para cobrir questões mais gerais com xcode4 (e projetos de atualização de formas mais antigas xcodes). No entanto, muitos dos problemas podem ser resolvidos seguindo o mesmo conjunto de instruções. Se você tiver algum dos seguintes problemas, tente os...
Em toda a nossa base de código C, vejo cada macro definida da seguinte maneira: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define...
Estou tentando descobrir como escrever uma macro que passará uma representação literal de string de um nome de variável junto com a própria variável em uma função. Por exemplo, dada a seguinte função. void do_something(string name, int val) { cout << name << ": " << val...
Tenho que fazer algo assim em C. Funciona apenas se eu usar um char, mas preciso de uma string. Como posso fazer isso? #define USER "jack" // jack or queen #if USER == "jack" #define USER_VS "queen" #elif USER == "queen" #define USER_VS "jack" #endif
Sempre perguntei isso, mas nunca recebi uma resposta realmente boa; Eu acho que quase qualquer programador antes mesmo de escrever o primeiro "Hello World" encontrou uma frase como "macro nunca deve ser usada", "macro são ruins" e assim por diante, minha pergunta é: por quê? Com o novo C ++ 11,...
Estou tentando descobrir como posso concatenar um #define'd int em uma #definestring' d usando o pré-processador C. Meu compilador é o GCC 4.1 no CentOS 5. A solução também deve funcionar para o MinGW. Gostaria de anexar um número de versão a uma string, mas a única maneira de fazer funcionar é...
Como mencionado em muitas das minhas perguntas anteriores, estou trabalhando com K&R e atualmente estou no pré-processador. Uma das coisas mais interessantes - algo que eu nunca soube antes de qualquer uma de minhas tentativas anteriores de aprender C - é o ##operador de pré - processador....
Aqui está o que estou tentando fazer: typedef enum { ONE, TWO, THREE } Numbers; Estou tentando escrever uma função que faria um caso de switch semelhante ao seguinte: char num_str[10]; int process_numbers_str(Numbers num) { switch(num) { case ONE: case TWO: case THREE: {...
#include <stdio.h> #define decode(s,t,u,m,p,e,d) m##s##u##t #define begin decode(a,n,i,m,a,t,e) int begin() { printf("Ha HA see how it is?? "); } Isso chama indiretamente main? quão?
Por que a #ifcondição no seguinte código foi atendida: #include <iostream> #define VALUE foo int main() { #if VALUE == bar std::cout << "WORKS!" << std::endl; #endif //
É possível, usando o pré-processador C / C ++, contar linhas dentro de um arquivo de origem, em uma macro ou em algum tipo de valor disponível no tempo de compilação? Por exemplo, eu pode substituir MAGIC1, MAGIC2e MAGIC3no seguinte, e obter o valor 4 de alguma forma quando se utiliza...
Estou inicializando uma matriz de duas maneiras diferentes, dependendo de uma macro: # if feature_enabled const int v[4] = {1, 2, 3, 4}; #else const int v[5] = {0, 1, 2, 3, 4}; #endif O problema é que os dados na atribuição são na verdade matrizes grandes e, por várias razões, não é uma boa...