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少了部分功能,所以希望在编译的时候,根据不同的版本编译工程中相应的代码. ...
随机推荐
- 十四.spring-boot使用mybatis
在springMVC+spring中使用mybatis已经非常非常的灵活,但是需要配置很多的信息 一.创建maven web project 二.创建数据库表 三.在application.prope ...
- cc攻击技术
攻击者借助代理服务器生成指向受害主机的合法请求,实现DOS,和伪装就叫:cc(ChallengeCollapsar). CC主要是用来攻击页面的.大家都有这样的经历,就是在访问论坛时,如果这个论坛比较 ...
- 模拟源码深入理解Vue数据驱动原理(2)
我们说到如果监听的属性是个对象呢?那么这个对象中的其他属性岂不就是监听不了了吗?如下: 倘若user中的name.age属性变化,如何知道它们变化了呢?今儿,就来解决这一问题. 通过走读Vue源码,发 ...
- 解决phpcms使用php7.1.9时修改后台菜单错误 "[] operator not supported for strings"错误提示
出现这个错误提示是因为 $array 在初始化的时候是一个字符串,在下面使用的时候作为数组使用,php7.x版本并没有将$array自动转换为 数组而是以字符串存在"[]"作为了运 ...
- SQL通过身份证获取信息
SELECT t.identity_number '身份证号',SUBSTR(t.identity_number,1,2) AS "省份",SUBSTR(t.identity_nu ...
- 【云计算】Docker容器时间同步如何配置?
示例: # 3.8 配置时区.时钟同步 # configure timezone & ntp RUN echo ${TIME_ZONE} > /etc/timezone \ && ...
- Java中常用的6种排序算法详细分解
排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料. 废话不多说,下面逐一看看经典的排序算法: 1. 选择排序 选择排序的基本思想是遍历数组的过 ...
- 创建CSS3警示框渐变动画
来源:GBin1.com 在线演示 在线下载 现代的网页设计技术已经允许开发人员在大多数浏览器中快速实现所支持的动画,其中消息警示是非常普遍的.由于默认的JavaScript警示框往往设计不佳和过 ...
- Intent传递对象的方法
//传递对象 Bundle bundle = new Bundle(); intent = new Intent(getApplicationContext(), YourActivity.class ...
- rails执行sidekiq任务的时候报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”
rails执行sidekiq任务的时候报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.soc ...