ANSI 标准C 还定义了如下几个宏
ANSI 标准C 还定义了如下几个宏:
_LINE_ 表示正在编译的文件的行号
_FILE_ 表示正在编译的文件的名字
预处理名称意义
#define 宏定义
#undef 撤销已定义过的宏名
#include 使编译程序将另一源文件嵌入到带有#include 的源文件中
#if #if 的一般含义是如果#if 后面的常量表达式为true,则编译它与#endif 之
间的代码,否则跳过这些代码。命令#endif 标识一个#if 块的结束。#else
命令的功能有点象C 语言中的else ,#else 建立另一选择(在# if 失败
的情况下)。#elif 命令意义与else if 相同,它形成一个if else-if 阶梯状
语句,可进行多种编译选择。
#else
#elif
#endif
#ifdef 用#ifdef 与#ifndef 命令分别表示“如果有定义”及“如果无定义”,是条
件编译的另一种方法。#ifndef
#line 改变当前行数和文件名称,它们是在编译程序中预先定义的标识符
命令的基本形式如下:
#line number["filename"]
#error 编译程序时,只要遇到#error 就会生成一个编译错误提示消息,并停止
编译
#pragma 为实现时定义的命令,它允许向编译程序传送各种指令例如,编译程序可
能有一种选择,它支持对程序执行的跟踪。可用#pragma 语句指定一个
跟踪选择。
_DATE_ 表示编译时刻的日期字符串,例如: "25 Dec 2007"
_TIME_ 表示编译时刻的时间字符串,例如: "12:30:55"
_STDC_ 判断该文件是不是定义成标准C 程序
如果编译器不是标准的,则可能仅支持以上宏的一部分,或根本不支持。当然编译器
也有可能还提供其它预定义的宏名。注意:宏名的书写由标识符与两边各二条下划线构成。
ANSI 标准C 还定义了如下几个宏的更多相关文章
- ANSI 标准是为了确保 C++ 的便携性
ANSI 标准ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac.UNIX.Windows.Alpha 计算机上都能通过编译. 由于 ANSI 标准已稳定使用了很长的时间,所有 ...
- 标准JSON格式定义与解析注意点
标准JSON格式定义与解析注意点 在JS.IOS.Android中都内置了JSON的序列化.反序列化SDK.JEE中也可以使用第三方的JSON解析库,如GSON.虽然在JSON格式被定义出来的时候并没 ...
- 【VBA】标准Sub/Function定义,带ScreenUpdating、On Error GoTo
[说明] 标准Sub/Function定义,带ScreenUpdating.On Error GoTo Sub AutoFillRole() '--------------- ERROR MSG--- ...
- stm32存储器映像和标准库中定义外设地址的方法
结合存储器映像理解stm32标准库中定义外设地址的方法. stm32f103zet6是32位的.它所能访问的地址空间范围为2^32=4GB,把4GB分为8个block,分别为block0-block- ...
- 宏定义(无参宏定义和带参宏定义),C语言宏定义详解
1.宏定义说明 宏定义是比较常用的预处理指令,即使用"标识符"来表示"替换列表"中的内容.标识符称为宏名,在预处理过程中,预处理器会把源程序中所有宏名,替换成宏 ...
- C++ Pirmer : 第十四章 : 重载运算符与类型转换之函数调用运算符与标准库的定义的函数对象
函数调用运算符 struct test { int operator()(int val) const { return (i > 0 ? i : -i); } }; 所谓的函数调用就是一个类重 ...
- ANSI标准
NSI:美国国家标准学会(AMERICAN NATIONAL STANDARDS INSTITUTE: ANSI)成立于1918年.当时,美国的许多企业和专业技术团体,已开始了标准化工作,但因彼此间没 ...
- 网络标准之:IANA定义的传输编码
目录 简介 IANA的传输编码方式 7bit 8bit binary quoted-printable base64 总结 简介 不同的系统或者协议可以接受的数据类型是不同的,如果要在那些不支持现有数 ...
- adobe 蛋疼的套装, 想安装一个Flash Professional CS6,标准版还没有...
产品比较 查看内容 查看各 Creative Suite 6 版本的组件. Design Standard Design & Web Premium Production Premium Ma ...
随机推荐
- 在Js中得到元素的子元素集合注意事项
http://www.cnblogs.com/phonefans/archive/2008/09/04/1283739.html 在Js中得到元素的子元素集合注意事项 费话少说,直接看例子: 1 &l ...
- ssd存储的SLC、MLC、TLC闪存芯片颗粒有什么区别?
SLC = Single-Level Cell ,即1bit/cell,速度快寿命长,价格贵(约MLC 3倍以上的价格),约10万次擦写寿命: MLC = Multi-Level Cell,即2bit ...
- SQLServer2008不允许保存更改
sql server 2008在更改表结构的时候提示 “不允许保存更改,您所做的更改要求删除并重新创建以下表” 解决方案: 1.一般情况下:工具--选项--Designers--表设计器和数据库设计器 ...
- PAT甲级【2019年3月考题】——A1157 Anniversary【25】
Zhejiang University is about to celebrate her 122th anniversary in 2019. To prepare for the celebrat ...
- Qt 程序在 Windows 下的发布
本文讨论在 Windows 平台下编译成功的 Qt 程序,如何在未配置 Qt 开发环境的 Windows 平台下独立运行的方法. 经过验证发现,在 Ubuntu 平台下编译成功的程序可在未安装 Qt ...
- python3_OS模块
一.什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,所以离不了 ...
- 三、spring的AOP
AOP的基本认识 Aspect Oriented Programming,面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 利用AOP可以对业务逻辑的各个部分进行隔离,从而 ...
- Java工作流引擎 Activiti springmvc 后台框架源码 SSM 流程审批
工作流模块----------------------------------------------------------------------------------------------- ...
- 【转载】MySQL count(*) count(1) count(column)区别
MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高 InnoDB 引擎执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出来,然 ...
- 2018-12-25-win2d-图片水印
title author date CreateTime categories win2d 图片水印 lindexi 2018-12-25 10:37:52 +0800 2018-03-19 08:3 ...