C预编译宏
/*
============================================================================
Name : c_test001.c
Author : jiftle
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/ #include <stdio.h>
#include <stdlib.h> #define YEAR ((((__DATE__ [7] - '0') * 10 + (__DATE__ [8] - '0')) * 10 \
+ (__DATE__ [] - '')) * + (__DATE__ [] - '')) #define MONTH (__DATE__ [2] == 'n' ? 0 \
: __DATE__ [] == 'b' ? \
: __DATE__ [] == 'r' ? (__DATE__ [] == 'M' ? : ) \
: __DATE__ [] == 'y' ? \
: __DATE__ [] == 'n' ? \
: __DATE__ [] == 'l' ? \
: __DATE__ [] == 'g' ? \
: __DATE__ [] == 'p' ? \
: __DATE__ [] == 't' ? \
: __DATE__ [] == 'v' ? : ) #define DAY ((__DATE__ [4] == ' ' ? 0 : __DATE__ [4] - '0') * 10 \
+ (__DATE__ [] - '')) #define DATE_AS_INT (((YEAR - 2000) * 12 + MONTH) * 31 + DAY) int main(void) {
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */ printf("%s\n","----------------------------------");
printf("%-30s = %10d\n","__STDC_HOSTED__",__STDC_HOSTED__);
printf("%-30s = %10d\n","__STDC_VERSION__",__STDC_VERSION__);
printf("%-30s = %10d\n","__STDC__",__STDC__);
printf("%-30s = %10s\n","__DATE__",__DATE__);
printf("%-30s = %10s\n","__TIME__",__TIME__); printf("build time: %d-%02d-%02d %s\n",YEAR, MONTH + , DAY,__TIME__); return EXIT_SUCCESS;
}
linux下,gcc 运行结果:
----------------------------------
__STDC_HOSTED__ =
__STDC_VERSION__ =
__STDC__ =
__DATE__ = Jun
__TIME__ = ::
build time: -- ::
C预编译宏的更多相关文章
- C中的预编译宏定义
可以用宏判断是否为ARC环境 #if _has_feature(objc_arc) #else //MRC #endif C中的预编译宏定义 -- 作者: infobillows 来源:网络 在将一 ...
- C++头文件中预编译宏的目的
C++头文件中预编译宏的目的 eg: #ifndef _FACTORY_H_#define _FACTORY_H_......#endif //~_FACTORY_H_ 防止头文件被重复包含,导致变量 ...
- linux, windows, mac, ios等平台GCC预编译宏判断
写跨平台c/c++程序的时候,需要搞清各平台下面的预编译宏,区分各平台代码.而跨平台c/c++编程,GCC基本在各平台都可以使用.整理了一份各平台预编译宏的判断示例. 需要注意几点: * window ...
- GCC预编译宏查看
编译调试代码时,总是遇到要使用编译器预编译宏进行跨平台编译. gcc -E -dM -</dev/null 编译器版本 Thread model: posix gcc version 5.4.0 ...
- C/C++跨平台的的预编译宏
我们在编译一些跨平台的程序的时候难免会遇到_WIN32 __linux__什么之类的SDK或者编译器环境预定义的宏.有很多,之前还分不清_WIN32 和WIN32的区别.不过这里还好有个列表,做个备 ...
- xcode 配置系统环境变量 Preporocessing 预编译宏的另一种写法, 系统的DEBUG 由来
在某些项目中看到一些环境变量类似宏的东西 比如叫ENVIRONMENT, 但发现还找不到具体这个宏是什么值, 那是因为他实在Preprocessing里配置了这个宏的值, 他能配置debug/rele ...
- Unity3D 多平台 预编译 宏定义
平台定义 UNITY_EDITOR 编辑器调用. UNITY_STANDALONE_OSX 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平台的定义. UN ...
- C 预编译 宏 声明
- Visual Studio 2013 配置多个Release版本,并为每个版本配置预编译的宏
最近开发过程中,需要将同一份工程编译成两个版本,分别为ReleaseA和ReleaseB. ReleaseB比ReleaseA少了部分功能,所以希望在编译的时候,根据不同的版本编译工程中相应的代码. ...
随机推荐
- linux缓存nscd
1.安装 yum -y install nscd 2.配置文件: /etc/nscd.conf 3.缓存文件:缓存DB文件在/var/db/nscd下.可以通过nscd -g查看统计的信息 4.清除 ...
- sqlserver的CTE实现递归查询
--递归查询 IF OBJECT_ID('DiGui','U') IS NOT NULL DROP TABLE DiGui CREATE TABLE DiGui( Id ), ParentId ) ) ...
- [Todo]各种语言包管理工具
看到一篇文章不错: http://harttle.com/2015/05/29/pkg-manager.html 包管理和构建系统是现代的软件开发团队中必不可少的工具,也是Linux软件系统的常见组织 ...
- Jenkins +JUnit
转载:https://www.cnblogs.com/helloIT/p/5761740.html 1.环境 windows10 专业版 Jenkins 2.7 apache-ant-1.9.6 JD ...
- 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)
一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们.Let's go! ...
- IOS 开发学习33 使用sqlite3
sqlite3 命令行简单使用 sqlite3 路径 //打开数据库路径连接 select * from sqlite_master where type="table"; //显 ...
- 算法笔记_049:奇偶数排序(Java)
目录 1 问题描述 2 解决方案 2.1 一头一尾指针往中间扫描法 2.2 一前一后两个指针同时往后扫描法 1 问题描述 给定一个整数数组,请调整 数组中数的顺序,使得所有奇数位于数组的前半部分, ...
- pip运行报错Fatal error in launcher: Unable to create process using pip.exe
使用pip的时候报错Fatal error in launcher: Unable to create process using pip.exe 解决办法,升级pip python -m pip i ...
- selenium-Navigating
The first thing you’ll want to do with WebDriver is navigate to a link. The normal way to do this is ...
- vi语法高亮,自动缩进(转)
编辑.vimrc 这样文件在其中加入如下两行就可以了,此法对#号提示符下的操作无效. let &termencoding=&encodingset fileencodings=utf- ...