Макрос, который печатает выражение и оценивает его (с __ СТРОКА)

при объявлении глобальных объектов в javascript, вы должны объявить его вверху. Любая переменная, объявленная внутри функции, ограничена только этой функцией.

или, если переменная все еще должна быть объявлена ​​внутри функции, но с глобальной областью действия, используйте объявление окна. Например, window.validBet = betAmount[betAmount.length - 1];. Убедитесь, что функция, объявляющая переменную, вызывается перед функцией, обращающейся к переменной.

не используйте 'var' при объявлении глобальных переменных.

6
задан Coral Doe 27 September 2012 в 12:22
поделиться

2 ответа

Можно использовать # маркер препроцессора, который преобразовывает его аргумент RHS строковому литералу:

#include <stdlib.h>
#include <stdio.h>

#define STR(x) #x
#define PRINT(expr) (fprintf(stdout, "%s -> %d\n", STR(expr), (expr)))

int main(void)
{
    int x = 7;

    PRINT(x & 0x01);

    return EXIT_SUCCESS;
}

2) Это определенно не стандартно, и это - первый раз, когда я столкнулся с ним; не удивление, поскольку это, кажется, не делает намного больше, чем STR () макрос выше на первый взгляд.

3) Google, кажется, хорошо работает.

10
ответ дан 8 December 2019 в 05:24
поделиться

Что-то как

#define PRINT(expr) (fprintf(stdout, "%s -> %d\n", #expr, (expr)))

вероятно, что Вы хотите. # является stringification оператором.

13
ответ дан 8 December 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: