小编s_b*_*s_b的帖子

显示枚举值名称的通用方法

有没有办法显示枚举值的名称?说我们有:

enum fuits{
    APPLE,
    MANGO,
    ORANGE,
};

main(){
enum fruits xFruit = MANGO;
...
printf("%s",_PRINT_ENUM_STRING(xFruit));
...
}
Run Code Online (Sandbox Code Playgroud)

使用预处理器

#define _PRINT_ENUM_STRING(x) #x
Run Code Online (Sandbox Code Playgroud)

将无法工作,因为我们需要获取变量'x'的值,然后将其转换为字符串.这在c/C++中是否可行?

c c++

7
推荐指数
1
解决办法
2212
查看次数

为什么线程创建方法需要参数?

Windows中的所有线程创建方法(如pthread_create()或CreateThread())都希望调用者提供指向线程的arg的指针.这本身不安全吗?

只有当arg位于堆中时,这才能"安全"工作,然后再次创建堆变量会增加清理已分配内存的开销.如果提供堆栈变量作为arg,则结果最多是不可预测的.

这对我来说看起来像是半熟的解决方案,还是我错过了API的一些微妙方面?

c c++ multithreading

2
推荐指数
1
解决办法
278
查看次数

C++对象如何访问其成员函数?

C++对象如何知道它的成员函数定义存在于何处?我很困惑,因为Object本身不包含函数指针. sizeof在对象上证明了这一点.那么Runtime环境如何完成函数映射的对象呢?哪个类的成员函数指针表保持不变?

c++

2
推荐指数
1
解决办法
335
查看次数

标签 统计

c++ ×3

c ×2

multithreading ×1