- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试添加一个编译局部变量的 c 宏它被初始化为函数名..
例如。
void foo (void)
{
stubmacro;
}
void bar (void)
{
stubmacro;
}
基本上编译为:
void foo (void)
{
char*function_name="foo";
}
void bar (void)
{
char*function_name="bar";
}
我在使用 C 预处理器宏方面一直遇到困难, 特别是在字符串化方面
宏使用预定义的FUNCTION ..
#define stubmacro char*function_name=##_FUNCTION__
无论如何,我的 stubmacro 宏是错误的,我希望得到一些帮助 在上面
最佳答案
只需使用__func__
,这是一个预定义的字符串,可以满足您的需要:
The identifier
__func__
shall be implicitly declared by the translator as if, immediately following the opening brace of each function definition, the declaration
static const char __func__[] = "function-name";
appeared, where function-name is the name of the lexically-enclosing function.
关于c 字符串化和 __function__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27779795/
使用: #define DEBUG_FOO(foo) fprintf(stderr, "foo is %x, currently in %s\n", foo, __FUNCTION__); 将打印:
我正在尝试添加一个编译局部变量的 c 宏它被初始化为函数名.. 例如。 void foo (void) { stubmacro; } void bar (void) { stubmacr
__FUNCTION__ 不是字符串文字吗?我一直认为它是 - 沿着 __FILE__ 的路线,但我刚刚发现我不能将字符串文字相邻地连接到它。如果它不是字符串文字,它被定义为什么?我无法让 cscop
如果我问的是一个明显的问题,请原谅我,但是在经历了一堆线程并尝试了一些东西之后,我无法确定这个简单的事情。 我有这个小程序: #define FUNC_PREFIX __FUNCTION__ "()
是否有像 __FUNCTION__ 或 __func__ 这样的编译时常量,其中还包括类方法的类名? 例如,对于 Bar 类中名为 foo 的方法,它不应扩展为 foo,而应扩展为 Bar::foo.
Simlar question with LINE 但是当我用 __FUNCTION__ 替换 __LINE__ 时。宏连接字符串文字“__FUNCTION__”而不是实际的函数名称。 最佳答案 __
Simlar question with LINE 但是当我用 __FUNCTION__ 替换 __LINE__ 时。宏连接字符串文字“__FUNCTION__”而不是实际的函数名称。 最佳答案 __
示例: @noreturn func setOnlyPropertyGetterError(__function__: String) { fatalError("\(__function__)
我定义了一个宏如下: #define ADD_TIME_ENTRY(_name_) m_pTimeMeasurement->addTimeEntry(_name_); 现在,我想通过 ADD_TI
我有一个带有 Windows 运行时组件项目的 Windows Phone 8 解决方案。在 WinRT 代码中,我想使用 __FUNCTION__ 从 C++ 类进行日志记录。但是,__FUNCTI
我有一个 C++ 库,它通过 crtdefs.h 使用预定义的宏 __FUNCTION__。宏已记录 here .这是我的用法: 我的.cpp #include ... void f() {
我发现以下代码可以将日志添加到系统日志中。但是,如果我还想将 __FUNCTION__ 信息添加到系统日志,该怎么做? openlog(basename(argv[0]), LOG_CONS | LO
使用 avr-gcc 可以将数据存储在程序内存中以节省 RAM。这是使用 PROGMEM attribute 完成的. AVR-libc 还提供了一个宏,PSTR() ,可用于文字字符串。 现在我正在
谁能告诉我什么时候 g++ 将 __FUNCTION__“宏”替换为包含函数名称的字符串?似乎在检查源代码的语法正确性之前它不能替换它,即以下将不起作用 #include #define DBG_W
我知道这两者之间的区别,我已经查看了手册。 我还是有些困惑。我可以在类的方法中使用 __FUNCTION__,这代表这个方法的名称。当我回应它时,它只输出名称。这里很清楚。 但为什么我可以在非 cal
有没有人对 C# 版本的 C++ __FUNCTION__ 宏有好的解决方案?编译器似乎不喜欢它。 最佳答案 尝试改用它。 System.Reflection.MethodBase.GetCurren
这应该是微不足道的,但我似乎无法弄清楚如何将 __FUNCTION__ 与字符串连接起来,尤其是在 GCC 上——尽管它适用于 VC++(我正在将一些代码移植到 Linux) #include #i
对于 gcc 项目,__FUNCTION__、__FILE__ 和 __func__ 返回的指针是否保证指向持久内存? (也就是说,我可以安全地引用另一个函数范围内的指针吗?)我知道 __func__
有什么方法可以打印__FUNCTION__作为 linux 上的宽字符? WIDEN 的技巧对我不起作用,gcc 编译器打印: 错误:?L_FUNCTION_?在这方面没有申明 有什么帮助吗? 谢谢
我尝试编写一个宽版本的__FUNCTION__ 来支持可移植代码(Windows 和Linux) #include #include #include typedef wchar_t WCHAR
我是一名优秀的程序员,十分优秀!