标签:argv sage 未定义 while and 编写 end header tab
宏 | 描 述 |
---|---|
__DATE__ | 丐前源文件的编泽口期,用 “Mmm dd yyy”形式的字符串常量表示 |
__FILE__ | 当前源文件的名称,用字符串常量表示 |
__LINE__ | 当前源义件中的行号,用十进制整数常量表示,它可以随#line指令改变 |
__TIME__ | 当前源文件的最新编译吋间,用“hh:mm:ss”形式的宁符串常量表示 |
STDC | 如果今前编泽器符合ISO标准,那么该宏的值为1,否则未定义 |
__STDC_VERSION__ | 如果当前编译器符合C89,那么它被定义为199409L;如果符合C99,那么它被定义为199901L:在其他情况下,该宏为宋定义 |
__STDC_HOSTED__ | (C99)如果当前是宿主系统,则该宏的值为1;如果当前是独立系统,则该宏的值为0 |
_STDC_IEC_559 | (C99)如果浮点数的实现符合IEC 60559标准时,则该宏的值为1,否则为未定义 |
__STDC_IEC_559_COMPLEX__ | (C99)如果复数运算实现符合IEC60559标准时,则该宏的伉为1,否则为未定义 |
STDC_ISO_10646 | (C99 )定义为长整型常量,yyyymmL表示wchai_t值遵循ISO 10646标准及其指定年月的修订补充,否则该宏为未定义 |
int main (void)
{
printf("Copyright (c) Powered by www.develhome.com\n");
printf("Compiled on %s at %s\n", __DATE__,__TIME__);
return 0;
}
#ifdef __STDC__
/* Some version of standard C */
#if defined(__STDC__VERSION__)&&__STDC_VERSION__>=199901L
/* C99 */
#elif defined(__STDC_VERSION__)&&__STDC_VERSION__>=199409L
/* C89 and amendment 1 */
#else
/* C89 but not amendment 1*/
#endif
#else /* __STDC__not defined */
/*Not Standard C*/
#endif
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#define MESSAGE(message,assertion) do{ if(!(assertion)){ printf("line %d in %s(%s)", __LINE__, __FILE__,__FUNCTION__); if(message){ printf(":%s",message); } printf("\n"); abort(); } }while(0)
int OpenFile(const char *filename)
{
int fd;
MESSAGE("文件名称不能够为空",filename);
MESSAGE("文件不存在",0==access(filename,F_OK));
fd = open(filename,O_RDONLY);
close(fd);
return 0;
}
int main(int argc,char **argv)
{
MESSAGE("命令参数不能够为空",argc==2);
OpenFile(argv[1]);
return 0;
}
标签:argv sage 未定义 while and 编写 end header tab
原文地址:https://www.cnblogs.com/CH520/p/10152328.html