有关c语言预处理

发布者:自由漫步最新更新时间:2015-01-16 来源: 51hei关键字:C语言  预处理 手机看文章 扫描二维码
随时随地手机看文章
先看下面三个问题:
1.预处理是C语言的一部分吗?
2.包含“#”的都是预处理吗?
3.预处理后面都不需要加;吗?
下面是ANSI标准定义的C语言预处理指令:

另外,ANSC还定义了如下宏:
_LINE_ 表示正在编译的文件的行号
_FILE_ 表示正在编译的文件的名字
_DATE_ 表示编译时刻的日期字符串,例如: "25 Dec 2007"
_TIME_ 表示编译时刻的时间字符串,例如: "12:30:55"
_STDC_ 判断该文件是不是定义成标准C
如果你用的是标准编译器,理论上支持上宏定义,当然,如果不是标准的话,有可能支持一部分,或者完全不支持。注意:宏名的书写由标识符与两边各二条下划线构成。
现在回到刚开始的问题:
1.预处理命令不是C语言文本的内容,是某个编译工具的功能,不同的编译工具,功能及命令是可能不同的.
2.----------------
3.---------------
还有两个经典的问题:
***“#define M 100”是宏定义吗?显然不是,去掉双引号的话,确实是宏定义,但是加上以后就是字符串了...
***C语言程序的执行入口在哪?或者说从哪儿开始?是main()函数吗?为什么?
析:
C语言程序的入口函数与开发工具及提供的运行库有关,通常在链接是可以指定。在链接时,指定入口函数,但入口函数必须是运行启动库中支持的入口函数,如:mainCRTStartup 就是调用会调用主函数 main() 的入口函数。因此,入口函数是运行库提供的,当然你也能定制自己的运行库,自己编写入口函数,入口函数主要是完成内存及运行库的初始化工作,在C语言中 main函数是主函数,就是入口函数完成初始化工作后调用的函数。不同的初始化环境,有不同的入口函数及主程序....
关键字:C语言  预处理 引用地址:有关c语言预处理

上一篇:C语言关键字一览
下一篇:240128液晶单片机驱动

推荐阅读最新更新时间:2024-03-16 13:51

pic168xa ADC程序(c语言
#i nclude pic.h #i nclude pic168xa.h __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 const char TABLE ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void DELAY(); void DELAY11(); void init(); void display(unsigned int x); void main() {unsigned int result=0x0000; do { int i; result=0x000
[单片机]
PCF8583+LM1602的protues仿真实例(C语言
程序代码: #include reg51.h #include intrins.h #include absacc.h #define lcdwritecmd XBYTE #define ledwritedat XBYTE sbit SCL=P1^0 ; sbit SDA=P1^1 ; char tab ; unsigned char year,mon,day,hour,min,sec,state,hudsec; //============================延时函数==================================== void delay(unsigned char n) {
[单片机]
基于AVR单片机的18B20温度传感器及LCD显示的C语言程序设计
***************************************************/ #include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int #include 1602LCD_drive.h //包含LCD驱动程序软件包 #include DS18B20_drive.h //DS18B20驱动程序软件包 #define beep_0 (PORTD=PORTD&0xbf) //PD6上的蜂鸣器发声 #define beep_1 (PORTD=PORTD|0x40) //PD6上的蜂鸣器
[单片机]
模拟串口的C语言代码
本程序是模拟串口硬件机制写的,使用时可设一定时中断,时间间隔为1/4波特率,每中断一次调用一次接收函数, 每中断4次调用一次发送函数,不过.对单片机来说时钟并须要快.要知道9600的波特率的每个BIT的时间间隔是104us.而单片机中断一次压栈出栈一次的时间是20us左右(标准的51核12M晶体)这样处理时间就要考虑清楚了.呵呵.以下程序是放在定时器中断程序函数内的 //接收部分 sbit JieShou_D= ;//定义接收端口 uint8 DingShiJiShu,JieShou_h;//定时计数,接收缓冲器 uint16 JieShou_T;//接收临时寄存器 bit KaiShi,JieShou_b;//开始接收
[单片机]
单片机C语言优化
一、程序结构的优化 虽然并不会影响生成代码的质量,但是在实际编写过程中还是要遵循一定的书写规则,一个书写清晰明了的程序有利于以后的维护。在书写程序时,特别是对于while、for、do while、if else、switch case等语句或这些语句嵌套组合时,应采用 缩格 的书写形式。 二、标识符 程序种使用的用户标识符除要遵循标识符的命名规则以外,一半不要用代数符号(如a、b、x1、x2)作为变量名,应选取具有相关含义的英文单词(或缩写)或拼音作为标识符,增加程序的可读性。 三、程序结构 C语言是一种高级程序设计语言,提供了十分完备的规范化流程控制结构。因此在采用C语言设计单片机应用程序时,首先要注意尽可能采用结构化
[单片机]
单片机中用C语言查表和移位问题
第一个是查表法 比方说我有三个数据 char code table={0x01,0x02,0x03}分别对应0xa,0xb,0xc,请问如何用C语言实现查表找到对应的值呢?请给位大虾写出具体的语法实现,要简洁明了。 第二个问题是:比方说我有一数据 char data=0xa2 ;我要串行发送出去,那么我采用从高位发送,然后左移8次分别发出,请问如何实现?若是采用data 1这样的语法,每次左移出去的高位去哪了呢?在CY位?那么任何单片机都有CY寄存器?况且都是左移,data 1,什么时候高位就会移入CY,什么时候就是丢弃不要呢? 第一个问题: 比如用查表法将结果保存到变量i中,查表变量为x,则i = table ,记住C语言里面数
[单片机]
单片机C语言的位操作
由于PIC处理器对位操作是最高效的,所以把一些BOOL变量放在一个内存的位中,既可以达到运算速度快,又可以达到最大限度节省空间的目的。 在C中的位操作有多种选择。 ********************************************* 如:char x;x=x|0B00001000; /*对X的4位置1。*/ char x;x=x&0B11011111; /*对X的5位清0。*/ 把上面的变成公式则是: #define bitset(var,bitno)(var |=1 bitno) #define bitclr(var,bitno)(var &=~(1 bitno)) 则上面的操作就是:
[单片机]
基于灰度共生矩阵的图像分割方法研究
所谓图像分割就是指把图像分成各具特性的区域,并提取出感兴趣目标的技术和过程。它是数字图像处理中的关键技术之一,是进一步进行图像识别、分析和理解的基础。目前图像分割方面现有的算法非常多,将它们进行分类的方法也提出了不少。一般分为3类:(1)阈值分割;(2)边缘检测;(3)区域提取。但还没有一种方法能普遍适用于各种图像。因此,对于图像分割的研究还在不断深人之中,也是目前图像处理中研究的热点之一。随着科技的发展进步,图像处理在军事中的运用也越来越广泛,这主要集中在迷彩设计这方面。而现在军事上的伪装迷彩是现代高技术战争中隐藏武器装备、保存自我的重要手段,也是消灭敌人的需要。因此对于迷彩的设计研究也一直都是各国的热门话题。文中主要以某山
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved