Perguntas sobre 'macros'

1
resposta

Usando $ crate nas macros procedurais de Rust?

Eu sei qual é a variável $crate , mas, até onde eu sei, não pode ser usado dentro de macros procedurais. Existe outra maneira de conseguir um efeito similar? Eu tenho um exemplo que requer que eu escreva algo assim usando citação e fer...
06.07.2017 / 15:37
3
respostas

Macro hell: Ponteiro independente de plataforma para setjmp / sigsetjmp

Eu estou escrevendo código multiplataforma que precisa usar um ponteiro para setjmp / sigsetjmp. Normalmente isso seria tão simples quanto fazer #include <setjmp.h> void * sigsetjmp_p = sigsetjmp; No entanto, ISO e POSIX indicam que s...
06.03.2013 / 16:03
1
resposta

A macro do pré-processador para o construtor de interfaces de destino não está disponível para o OS X?

Eu tenho uma subclasse IB_DESIGNABLE custom NSView . Ao desenhar, quero que minha visualização execute um método apenas quando estiver sendo executado no Interface Builder. Eu procurei isto e a documentação da Apple declara:    Você pode...
15.11.2014 / 15:25
6
respostas

Como implementar uma macro genérica em C?

FUNC(param); Quando param é char * , envie para func_string . quando é int , despacha para func_int Acho que pode haver uma solução para isso, pois os tipos de variáveis são conhecidos em tempo de compilação.     
31.08.2011 / 13:21
7
respostas

C ++ Obtendo o tamanho de um tipo em uma macro condicional

Existe alguma maneira de fazer algo assim em c ++, parece que o tamanho não pode ser usado lá por algum motivo? #if sizeof(wchar_t) != 2 #error "wchar_t is expected to be a 16 bit type." #endif     
02.08.2009 / 17:47
9
respostas

Vantagem de macro em linha em C ++

Sabemos que os in-line são favoráveis, pois são verificados pelo compilador e a mesma operação (como ++ x) não é avaliada mais de uma vez quando passada como argumento em comparação com as macros. Mas em uma entrevista me perguntaram as vanta...
25.01.2011 / 07:10
9
respostas

Existe algum truque para proibir que a macro C seja chamada como valor esquerdo?

Por exemplo, struct node { struct node *left, *right; }; #define LEFT(X) (X->left) #define RIGHT(X) (X->right) Eu gostaria de proibir a chamada de macro assim sem alterar a interface de macro existente. LEFT(n) = ... Alguma ide...
15.04.2011 / 13:11
5
respostas

Macro e função com o mesmo nome

Eu tenho o seguinte código #define myfunc(a,b) myfunc(do_a(a), do_b(b)) void myfunc(int a, int b) { do_blah(a,b); } int main() { int x = 6, y = 7; myfunc(x,y); return 0; } Eu quero que o pré-processador expanda a função myfu...
23.12.2009 / 11:14
3
respostas

Por que é necessário recompilar as definições que usam uma macro Common Lisp quando a modificamos?

Esta é uma dúvida que sempre me deixou curioso. Por que é necessário também recompilar as definições que usam uma macro Common Lisp quando a modificamos (além de, obviamente, recompilar a macro Common Lisp modificada)? Obrigado antecipadam...
07.06.2013 / 12:20
3
respostas

define uma macro de função no bash

É possível definir uma macro-função no bash, então quando escrevo: F(sth); bash executa isso: echo "sth" > a.txt;     
17.04.2012 / 08:39