Articles of macros

O que faz a macro Q_OBJECT? Por que todos os objects do Qt precisam dessa macro?

Acabei de começar a usar o Qt e notei que todas as definições de class de exemplo têm a macro Q_OBJECT como a primeira linha. Qual é o objective dessa macro de pré-processador?

C ++ – enum vs. const vs. #define

No final do artigo aqui: http://www.learncpp.com/cpp-tutorial/45-enumerated-types/ , ele menciona o seguinte: Finalmente, como acontece com as variables ​​constantes, os tipos enumerados aparecem no depurador, tornando-os mais úteis do que os valores #definidos nesse aspecto . Como a frase em negrito acima é alcançada? Obrigado.

Quando citar variables?

Eu estou escrevendo macros CMake pela primeira vez, e eu tenho dificuldade em entender como as variables ​​funcionam. Mais especificamente, ${a} parece ter um significado diferente de “${a}” . Por exemplo aqui: Passando uma lista para uma macro cmake Não consigo entender quando devo adicionar citações e quais são os maiores princípios subjacentes.

parameters opcionais com macros C ++

Existe alguma maneira de obter parâmetros opcionais com Macros C ++? Algum tipo de sobrecarga também seria bom.

Posso gravar / reproduzir macros no Visual Studio 2012/2013/2015/2017?

Aparentemente, as macros foram descartadas do Visual Studio 2012. Existe um plugin / extensão / ferramenta que me permitirá gravar e reproduzir macros de teclado (muito parecido com a macro temporária de gravação / reprodução no Visual Studio 2010)? Por exemplo, normalmente usaria uma macro ao converter código de um idioma para outro ou para […]

Macros C e uso de argumentos entre parênteses

Exemplo #define Echo(a) a #define Echo(a) (a) Eu percebo que provavelmente não há uma diferença significativa aqui, mas por que você iria querer include o dentro dos parênteses dentro do corpo macro? Como isso altera isso?

Quando foi a macro NULL não 0?

Eu me lembro vagamente de ler sobre isso há alguns anos, mas não consigo encontrar nenhuma referência na internet. Você pode me dar um exemplo em que a macro NULL não se expandiu para 0? Editar para maior clareza: Hoje ele se expande para ((void *)0) , (0) ou (0L) . No entanto, havia arquiteturas […]

C Definição de macro para determinar a máquina big endian ou little endian?

Existe uma definição de macro de uma linha para determinar o endianness da máquina. Estou usando o código a seguir, mas convertê-lo em macro seria muito longo. unsigned char test_endian( void ) { int test_var = 1; unsigned char test_endian* = (unsigned char*)&test_var; return (test_endian[0] == NULL); }

C macro de várias linhas: do / while (0) vs bloco de escopo

Duplicatas possíveis: Qual é a utilidade de fazer while (0) quando definimos uma macro? Por que existem, por vezes, instruções do / while e if / else sem sentido em macros C / C ++? do {…} while (0) para que serve? Eu vi algumas macros C multi-line que são empacotadas dentro de um loop […]

Os typedef e # definem o mesmo em c?

Gostaria de saber se typedef e #define são os mesmos em c ?