C代码中的编译选项问题 || C语法问题

Leaveye 2005-05-21 01:58:35
我定义了这样的宏:
#define IDof(func_name) ID##func_name
#define FUNC_DECLARE(func_name) \
ObjID IDof(func_name) = getNewID(#func_name); //declareNewObj( IDof(func_name) , #func_name);
使用时在主函数前加上了 FUNC_DECLARE(main),为什么报下面这个错误呢?
error C2099: initializer is not a constant
...全文
68 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nodummy 2005-05-21
  • 打赏
  • 举报
回复
C++这方面比较BT,通过全局对象的构造函数和析构函数,可以超越main执行代码……

想到一个BT的东西……
#include <stdio.h>
int main(void);
struct ft
{
ft()
{ main();}
};
ft woyundao;
main()
{
static int i = 0;
printf("%d\n",i++);
}
Leaveye 2005-05-21
  • 打赏
  • 举报
回复
C里面不允许在main以外调用函数……
//sigh
3x
nodummy 2005-05-21
  • 打赏
  • 举报
回复
因为getNewID的位置不对……

分给我吧……
llf_hust 2005-05-21
  • 打赏
  • 举报
回复
4
nodummy 2005-05-21
  • 打赏
  • 举报
回复
3
nodummy 2005-05-21
  • 打赏
  • 举报
回复
2
nodummy 2005-05-21
  • 打赏
  • 举报
回复
1

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧