| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3347 人关注过本帖
标题:预定义宏
只看楼主 加入收藏
gausszzz
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-11-9
结帖率:100%
收藏
 问题点数:0 回复次数:9 
预定义宏
vc不支持以下预定义宏吗?那些编译器支持?
#include<stdio.h>
main()
{
    printf("_LINE_=%s\n",_LINE_);
    printf("_FILE_=%s\n",_FILE_);
    printf("_DATE_=%s\n",_DATE_);
    printf("_TIME_=%s\n",_TIME_);
}
--------------------Configuration: 预定义宏 - Win32 Debug--------------------
Compiling...
004.c
E:\软件\工具\学习工具\MSDev98\MyProjects\☆预定义宏\004.c(4) : error C2065: '_LINE_' : undeclared identifier
E:\软件\工具\学习工具\MSDev98\MyProjects\☆预定义宏\004.c(5) : error C2065: '_FILE_' : undeclared identifier
E:\软件\工具\学习工具\MSDev98\MyProjects\☆预定义宏\004.c(6) : error C2065: '_DATE_' : undeclared identifier
E:\软件\工具\学习工具\MSDev98\MyProjects\☆预定义宏\004.c(7) : error C2065: '_TIME_' : undeclared identifier
执行 cl.exe 时出错.

004.obj - 1 error(s), 0 warning(s)
搜索更多相关主题的帖子: 定义 
2008-11-26 11:32
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
反正我的Dev-c++支持

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-26 12:17
就搞C
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-6-9
收藏
得分:0 
宏你定义在那里了?程序你还未声明宏就用电脑肯定用不了.

上学前我是天才,经中国教育毕业后变成了蠢材
2008-11-26 12:37
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
统一楼上的观点,好象是没使用.
不过可能是只把主函数写出来了吧?

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-26 12:40
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
我怎么觉得是连个连续的下划线啊

#include <stdio.h>
void main()
{
    printf("_LINE_=%d\n",__LINE__);
}
2008-11-26 12:48
京广铁路
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2008-11-3
收藏
得分:0 
什么东东
2008-11-26 13:15
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
#include<stdio.h>
main()
{
    printf("_LINE_=%d\n",__LINE__);
    printf("_FILE_=%s\n",__FILE__);
    printf("_DATE_=%s\n",__DATE__);
    printf("_TIME_=%s\n",__TIME__);
}
人家标准预定义宏是连续两条下划线,你用一条。

without further ado, let’s get started
2008-11-26 13:40
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
宏定义的一般形式不是:
  #define 标识符 字符串
或者是 #define 宏名(形参表) 字符串  么?
为什么还可以printf("_TIME_=%s\n",__TIME__);这样?
我运行了一下,结果是输出现在的时间,有没人解释一下,谢谢!

寡人有疾,寡人好色......
2008-11-27 19:51
dubukuangye
Rank: 1
等 级:新手上路
威 望:2
帖 子:155
专家分:3
注 册:2008-11-11
收藏
得分:0 
我在网上找到如下介绍:   
   
  ANSIC标准定义了以下6种可供C语言使用的预定义宏:   
      __LINE__                       在源代码中插入当前源代码行号   
      __FILE__                       在源代码中插入当前源代码文件名   
      __DATE__                       在源代码中插入当前编译日期〔注意和当前系统日期区别开来〕   
      __TIME__                       在源代码中插入当前编译时间〔注意和当前系统时间区别开来〕         
      __STDC__                       当要求程序严格遵循ANSIC标准时该标识符被赋值为1。   
      __cplusplus   
  标识符__LINE__和__FILE__通常用来调试程序;   
  标识符__DATE__和__TIME__通常用来在编译后的程序中加入一个时间标志,以区分程序的不同版本;

我用TC试了下,能显示,是要用领个下划线的

与其离开她为了过的更好,不如抓住她,自己努力让她过的更好
2008-11-27 20:35
guoming1232006
Rank: 2
等 级:新手上路
威 望:4
帖 子:438
专家分:0
注 册:2008-11-20
收藏
得分:0 
哦,我明白了。谢谢楼上的解释。
但是怎么用一个字母代替一句话,如#define S (i love you)这个该怎么宏定义?

寡人有疾,寡人好色......
2008-11-27 20:48
快速回复:预定义宏
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014227 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved