导航:首页 > 程序命令 > c语言中表示命令的符号

c语言中表示命令的符号

发布时间:2024-07-14 01:27:17

‘壹’ 关于C语言预处理命令

第一句有问题。
比如
#ifndef WIN32
#endif printf("OK\n");
在这里,这个printf就不会被执行。也就是说, 一行中, 只能有一条预处理指令,
编译的预处理阶段, 编译器识别了一条完整的预处理指令后,后面的所有东西他都不要了。
对于第二句,在函数里,我们是可以使用预处理指令的。
比如
void fun(void)
{
#ifdef WIN32
... // 对于windows系统环境的操作
#else
... // 对于windows以外的系统环境的操作
#endif /* WIN32 */
...
}

楼上的同学, 你是在哪儿本书上看的? 介绍一下呗

‘贰’ C璇瑷涓锛屸$钬濈﹀彿链変粈涔堢敤鍟婏纻

$镎崭綔绯荤粺镄勫勭悊绗﹀彿,链夋椂鍊栾窡绯荤粺阃氢俊镄勬椂鍊栾佺敤涓,姣斿傚湪UNIX鐞嗙紪璇戞煇涓鏂囦欢鍙浠ョ敤浠ヤ笅锻戒护:$ CC pn.c

‘叁’ 求大神整理c语言指令符号及用法大全。

编译指令

编译指令

说明

#include

包含另一个文件

#define

定义一个宏(macro)或是常量

#undef

取消一个宏常量的定义

#asm和#endasm

在程序中加入汇编语言的程序

#ifdef、#ifndef、#else、#endif

用于条件式的编译

注解://—单行注解;
基本数据类型 (int,float,double,char,void)

数据类型

类型说明

长度(位)

数据长度

bit



1

0,1

char

字符

8

—128~127

unsigned char

无符号字符

8

0~255

signed char

有符号字符

8

—128~127

int

整型

16

—32768~32767

short int

短整型

16

—32768~32767

unsigned int

无符号整型

16

0~65535

signed int

有符号整型

16

—32768~32767

long int

长整型

32

—2147483648~2147483647

unsigned long int

无符号长整型

32

0~4294967295

signed long int

有符号长整形

32

—2147483648~2147483647

float

浮点数(实数)

32

0.175e-38~0.402e38

double

双精度浮点

32

0.175e-38~0.402e38

void



0

没任何数据

用户自定义数据类型格式
typedef struct{
数据类型 变量序列1;
数据类型 变量序列1;
...
}自定义数据类型的名称;
保留字
_at_,alien,bdata,break,bit,case,char,code,compact,const,continue,data,
default,do,double,far,else,enum,extern,float,for,goto,if,funcused,idata,int,
inline,interrupt,large,long,pdata,_priority_,reentrant,return,sbit,sfr,sfr16,
short,sigend,sizeof,small,static,struct,switchc_task_,typedef,using,union,
unsigned,void,volatile,while,xdata

常量表示法

常数

规则

范例

十进制

一般十进制格式

1234567890

二进制

开头加上0b

0b00001110

八进制

开头加上O

O0123

十六进制

开头加上0x

0xFF45

无符号整数常量

结尾加上U

30000U

长整数常量

结尾加上L

299L

无符号长整数常量

结尾加上UL

327800UL

浮点数的常量

结尾加上F

4.234F

字符常量

以单引号括起来

‘a’

字符串常量

以双引号括起来

“hello”

-----------------------------------------------------运算符-----------------------------------------------------
算术运算

运算符

说明

范例

执行结果

+



c=a+b;

c 等于10





d=a—b;

d 等于6

*



e=a*b;

e 等于16

/



f=a/b;

f 等于4

%

取余数

g=a%b;

g 等于0

++

加1

c++;相当于c=c+1;

c 等于11

——

减1

d——;相当于d=d—1;

d 等于5

=

等于

a=8;

设置a等于8

+=

先相加在等于

e+=5;相当于e=e+5;

e 等于21

—=

先相减在等于

f—=5;相当于f=f—5;

f 等于—1

*=

先相乘在等于

b*=5;相当于b=b*5;

b 等于0

/=

先相除在等于

a/=5;相当于a=a/5;

a 等于1

%=

先取余数在等于

a%=5;相当于a=a%5;

a 等于3

※假设a等于8,b等于2
比较运算

运算符

说明

范例

执行结果

==

等于

a==5

F

!=

不等于

a!=5

T

<<o:p>

小于

a<5

F

>

大于

a>5

T

<=

小于等于

a<=5

F

>=

大于等于

a>=5

T

※比较运算结果是个布尔值既TRUE(真值)或FALSE(假值)。假设a等于8

逻辑运算

运算符

说明

范例

执行结果

&&

AND

(a>5)&&(a<10)

T

||

OR

(a<5)||(a>10)

F

!

NOT

!(a>10)

T

※逻辑运算结果是个布尔值既TRUE(真值)或FALSE(假值)。假设a等于8
位逻辑运算

运算符

说明

范例

执行结果

&

AND

a&0x01

a等于1

|

OR

a|0x80

a等于0x85

~

NOT

~a

a等于0xFA

^

XOR

a^0xFF

a等于0xFA

<<

左移

a<<1

a等于0x0A

>>

右移

a>>1

a等于0x0A

※假设a等于5
----------------------------------------------------控制命令---------------------------------------------------
if语句
if(条件) 语句1;
else 语句2;
例:if(d==4) d=0; //如果d等于4就设置d等于0
else d++; //否则就将d加1
if(ticks==0) { //如果ticks等于0
ticks=1000; //ticks 设置成1000
counter[0]++; //counter[0]加1
}

嵌套if语句
例:if(counter[0]==10) {
counter[1]++;
counter[0]=0;
if(counter[1]==10) {
counter[2]++;
counter[1]=0;
}
}

switch语句
switch (变量) {
case 常量1:语句1; break;
case 常量2:语句2; break;
case 常量3:语句3; break;
......
default ; 语句n;
}
for循环
for (初值,条件,变化值) 语句;
例:for(i=0;i<10;i++) x=x+i;
for(i=1;i<10,i++)
for(j=1;j<10,j++)
printf(“%d %d”,i,j);
无穷循环:
for( ; ; );

while循环
while (条件) 语句;
例:while (ch!=!’A’) ch=getche();
无穷循环:
while(1);

do/while循环
do {
语句;
...
} while(条件);
例:do {
ch=getche();
} while (ch!=”A”);

goto语句
loop1:
x++;
if(x<100) goto loop1;
----------------------------------------------------指针和函数------------------------------------------------
指针的定义
数据类型 *指针变量的名字;
例: char *p;
int *x;

指针与数组
例: char filename[80];
char *p;
p=filename; //指针p存放filename的开始地址

int x[5]={1,2,3,4,5};
int *p,sum,i;
p=x; //指针p存放数组x的开始地址
for(i=0;i<5;i++)
sum=sum+p[i]; //p[i]相当于x[i]

指针的运算
1.针变量前面加上*号就是取得指针所指向位置的内容。
例:int x[5]={1,2,3,4,5};
int *p;
p=x; //指针p存放数组x的开始地址
*p=10; //相当于设置x[0]等于10
2.变量前面加上&符号,可以取得一个变量的位置。
例:int x,y;
int *p;
p=&x; //指针p存放x的地址,相当于p是指向x 的指针
*p=1; //相当于设置x等于1
3.&符号也可以加在数组的前面
例:int x[5];
int *p;
p=&x[2]; //指针p存放x[2]的地址,相当于p是指向x[2]的指针
*p=50; //相当于设置x[2]等于50
函数
函数类型 函数名称(参数序列);
参数说明
{
函数的主体
}
例:void delay (void) { //不返回任何数据的函数
unsigned char i,j; //没有任何参数的函数
for(i=0,i<255,i++)
for(j=0,j<255,j++);
}
main()
{
...
delay(); //调用函数
}
例:unsigned char sum(unsigned chat a,unsigned chat b)
{
unsigned chat x;
check_GLCD_busyflag(); //函数中可以调用另一个函数
x=a+b;
return x; //return会返回x的数据
}
中断服务函数
void 中断服务程序的名称(void) interrupt 中断号码using 寄存器组号码
{
中断服务子程序主体
}

中断号码
#define IE0_VECTOR 0 //0x03
#define TF0_VECTOR 1 //0x0B
#define IE1_VECTOR 2 //0x13
#define TF1_VECTOR 3 //0x1B
#define SIO_VECTOR 4 //0x23
对于S51有定时器2
#define TF2_VECTOR 5 //0x2B
例:static void xint0_isr(void) interrupt IE0_VECTOR(或0) using 1
{
unsigned char i,j=0xFF;
for(i=0,i<16,i++)
{
j++;
P1=j; //将数值输出到P1口
delay_4isr();
}
}
-----------------------------------------------------汇编语言--------------------------------------------------
在C中加入汇编语言
例:void delay100us()
{
#pragma asm
mov r7,#1
more: mov r3,#48
djnz r3,$
djnz r7,more
#pragma endasm
}
----------------------------------------------------宏(macro)----------------------------------------------
宏的定义
%*define (macro名称) (macro的指令)
例:%*define (write_1) (
setb DI
serb SK
clr SK
)

#define 宏的名称 宏的指令
例:#define uchar unsigned char

C语言中的符号总结
运算符的种类C语言的运算符可分为以下几类;
1. 算术运算符
用于各类数值运算,包括加减乘除求余自增自减共七种运算
{ ( + ) ,( - ),(* ) ,( / ) ,( % ),( ++ ),(-- )}。
2. 关系运算符
用于比较运算,包括大于(>),小于(<</span>),等于(==),大于等于(>=),
小于等于(<=),不等于(!=)共六种。
3.逻辑运算符
用于逻辑运算,包括与(&&)或(||)非(!)三种.
4.位操作运算符
参与运算的量,按二进制位进行运算,包括:
位与(&),位或(|),位非(~),为异或(^),左移(<<),右移(>>)共六种。
5.赋值运算符
用于赋值运算,分为:
简单赋值(=)
复合算术赋值(+=,-=,*=,/=,%=)
复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(?:)。
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)两种运算。
9.求字节数运算符
用于计算数据类型所占用的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(→, .)

1.C的数据类型
基本类型,构造类型,指针类型,空类型
2.基本类型的分类及特点
类型说明符 字节 数值范围
字符型char 1 C字符集
基本整型int 2 -32768~32767
短整型short int 2 -32768~32767
长整型 long int 4 -214783648~214783647
无符号型 unsigned 2 0~65535
无符号长整型 unsigned long 4 0~4294967295
单精度实型 float 4 3/4E-38~3/4E+38
双精度实型 double 8 1/7E-308~1/7E+308
3.常量后缀
L或l 长整型
U或u 无符号数
F或f 浮点数
4.常量类型
整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。
5.数据类型转换
a自动转换
在不同类型数据的混合运算中,由系统自动实现转换, 由少字节类型向多字节类型转换。 不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。
b强制转换
由强制转换运算符完成转换。
6.运算符优先级和结合性
一般而言,单目运算符优先级较高,赋值运算符优先级低。 算术运算符优先级较高,关系和逻辑运算符优先级较低。 多数运算符具有左结合性,单目运算符、三目运算符、 赋值
7.表达式
表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。 表达式求值按运算符的优先级和结合性所规定的顺序进行。

表示输出类型的格式字符 格式字符意义
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀O)
x 以十六进制形式输出无符号整数(不输出前缀OX)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e 以指数形式输出单、双精度实数
g 以%f%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
标志字符为-、+、#、空格四种,其意义下表所示:
标志格式字符 标 志 意 义
- 结果左对齐,右边填空格
+ 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
# 对c,s,d,u类无影响;对o类, 在输出时加前
缀o 对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点
格式字符串

格式字符串的一般形式为: %[*][输入数据宽度][长度]类型 其中有方括号[]的项为任选项。各项的意义如下:
1.类型
表示输入数据的类型,其格式符和意义下表所示。
格式 字符意义
d 输入十进制整数
o 输入八进制整数
x 输入十六进制整数
u 输入无符号十进制整数
f或e 输入实型数(用小数形式或指数形式)
c 输入单个字符
s 输入字符串
转义字符
转义字符是一种特殊的字符常量。转义字符以反斜线”\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
常用的转义字符及其含义
转义字符 转义字符的意义
\n 回车换行
\t 横向跳到下一制表位置
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜线符”\”
\’ 单引号符
\a 鸣铃
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字?quot;A” ,\102表示字母”B”,\134表示反斜线,\XOA表示换行等。转义字符的使用
在C语言中,对变量的存储类型说明有以下四种:
auto 自动变量
register 寄存器变量
extern 外部变量
static 静态变量
自动变量和寄存器变量属于动态存储方式, 外部变量和静态变量属于静态存储方式。在介绍了变量的存储类型之后, 可以知道对一个变量的说明不仅应说明其数据类型,还应说明其存储类型。 因此变量说明的完整形式应为: 存储类型说明符 数据类型说明符 变量名,变量名…; 例如:
static int a,b; 说明a,b为静态类型变量
auto char c1,c2; 说明c1,c2为自动字符变量
static int a[5]={1,2,3,4,5}; 说明a为静整型数组
extern int x,y; 说明x,y为外部整型变量
与指针有关的各种说明和意义见下表。
int *p; p为指向整型量的指针变量
int *p[n]; p为指针数组,由n个指向整型量的指针元素组成。
int (*p)[n]; p为指向整型二维数组的指针变量,二维数组的列数为n
int *p() p为返回指针值的函数,该指针指向整型量
int (*p)() p为指向函数的指针,该函数返回整型量
int **p p为一个指向另一指针的指针变量,该指针指向一个整型量。

指针变量的赋值
p可以有以下两种方式:
(1)指针变量初始化的方法 int a;
int *p=&a;
(2)赋值语句的方法 int a;
int *p;
p=&a;

(1)取地址运算符&
(2)取内容运算符*

‘肆’ C语言32个命令含义 和符号详细点高手劳驾

auto :声明自动变量
break:跳出当前循环
case:开关语句分支
char :声明字符型变量或函数
const :声明只读变量
continue:结束当前循环,开始下一轮循环
default:开关语句中的“其他”分支
do :循环语句的循环体
double :声明双精度变量或函数
else :条件语句否定分支(与 if 连用)
enum :声明枚举类型
extern:声明变量是在其他文件正声明
float:声明浮点型变量或函数
for:一种循环语句
goto:无条件跳转语句
if:条件语句
int: 声明整型变量或函数
long :声明长整型变量或函数
register:声明寄存器变量
return :子程序返回语句(可以带参数,也可不带参数)
short :声明短整型变量或函数
signed:声明有符号类型变量或函数
static :声明静态变量
sizeof:计算数据类型长度
struct:声明结构体变量或函数
switch :用于开关语句
typedef:用以给数据类型取别名
union:声明共用数据类型
unsigned:声明无符号类型变量或函数
void :声明函数无返回值或无参数,声明无类型指针
volatile:说明变量在程序执行中可被隐含地改变
while :循环语句的循环条件

OK!

‘伍’ c语言中预处理命令都有哪些

我们可以在C源程序中插入传给编译程序的各中指令,这些指令被称为预处理器指令,它们扩充了程序设计的环境。现把常用的预处理命令总结如下: x0dx0a1. 预处理程序x0dx0a按照ANSI标准的定义,预处理程序应该处理以下指令:x0dx0a#if #ifdef #ifndef #else #elifx0dx0a#endifx0dx0a#definex0dx0a#undefx0dx0a#linex0dx0a#errorx0dx0a#pragmax0dx0a#includex0dx0a显然,上态李族述所有的12个预处理指令都以符号#开始,,每条预处理指令必须独占一行。x0dx0a2. #definex0dx0a#define指令定义一个标识符和一个串(也就是字符集),在源程序中发现该标识符时,都用该串替换之。这种标识符称为宏名字,相应的替换称为宏代换。一般形式如下:x0dx0a#define macro-name char-sequencex0dx0a这种语句不用分号结尾。宏名字和串之间可以有多个空白符,但串开始后只能以新行终止。x0dx0a例如:我们使用LEFT代表1,用RIGHT代表0,我们使用两个#define指令:x0dx0a#define LEFT 1x0dx0a#define RIGHT 0x0dx0a每当在源程序中遇到LEFT或RIGHT时,编译程序都用1或0替换。x0dx0a定义一个宏名字之后,可以在其他宏定义中使用,例如:x0dx0a#define ONE 1x0dx0a#define TWO ONE+ONEx0dx0a#define THREE ONE+TWOx0dx0a宏代换就是用相关的串替代标识符。因此,如果希望定义一条标准错误信息时,可以如下定义:x0dx0a#define ERROR_MS “Standard error on input \n”x0dx0a如果一个串长于一行,可在行尾用反斜线”\”续行,如下:x0dx0a#define LONG_STRING “This is a very very long \x0dx0aString that is used as an example”x0dx0a3. #errorx0dx0a#error指令强制编译程序停止编译,它主要用于程序调试。#error指令的一般形式是:x0dx0a#error error-messagex0dx0a注意,宏串error-message不用双引号包围。遇到#error指令时,错误信息被显示,可能同时还显示编译程序作者预先定义的其他内容。x0dx0a4. #includex0dx0a程序中的#include指令要求编译程序读入另一个源文件。被读入文件的名字必须用双引号(“”)或一对尖括号(<>)包围,例如:x0dx0a#include “stdio.h”x0dx0a#include x0dx0a都使C编译程序读入并编译头文件帆弊以用于I/O系统库函数。x0dx0a包含文件中可以包含其他#include指令,称为嵌套包含。允许的最大嵌套深度随编译器而变。x0dx0a文件名被双括号或尖括号包围决定了对指定文件的搜索方式。文件名被尖括号包围时,搜索按编译程序作者的定义进行,一般用于搜索某些专门放置包含文件的特殊目录。当文件名被双括号包围时,搜索按编译程序实时的规定进行,一般搜索当前目录。如未发现,再按尖括号包围时的办法重新搜索一次。x0dx0a通常,绝大多数程序员使用尖括号包围标准的头文件,双引号用于包围与当前程序相关的文件名。x0dx0ax0dx0a5. 条件编译指令x0dx0a若干编译指令允许程序员有选择的编译程序源代码的不同部分,这种过程称为条件编译。x0dx0a5.1#if、#else、#elif #endifx0dx0a条件编译指令中最常用的或许是#if,#else,#elif和#endif。这些指令允扰档许程序员根据常数表达式的结果有条件的包围部分代码。x0dx0a#if的一般形式是:x0dx0a#if constant-expressionx0dx0aStatement sequencex0dx0a#endifx0dx0a如#if后的常数表达式为真,则#if和#endif中间的代码被编译,否则忽略该代码段。#endif标记#if块的结束。x0dx0a#else指令的作用与C语言的else相似,#if指令失败时它可以作为备选指令。例如:x0dx0a#include x0dx0a#define MAX 100x0dx0aInt main(void)x0dx0a{x0dx0a#if MAX>99x0dx0aprintf(“Compiled for array greater than 99.\n”);x0dx0a#elsex0dx0aprintf(“Complied for small array.\n”);x0dx0a#endifx0dx0areturn 0;x0dx0a}x0dx0a注意,#else既是标记#if块的结束,也标记#else块的开始。因为每个#if只能写一个#endif匹配。x0dx0a#elif指令的意思是“否则,如果”,为多重编译选择建立一条if-else-if(如果-否则-如果链)。如果#if表达式为真,该代码块被编译,不测试其他#elif表达式。否则,序列中的下一块被测试,如果成功则编译之。一般形式如下:x0dx0a#if expressionx0dx0aStatement sequencex0dx0a#elif expression1x0dx0aStatement sequencex0dx0a#elif expression2x0dx0aStatement sequencex0dx0a.x0dx0a.x0dx0a.x0dx0a#elif expressionx0dx0aStatement sequencex0dx0a#endifx0dx0a5.2#ifdef和#ifndefx0dx0a条件编译的另一个方法是使用编译指令#ifdef和#ifndef,分别表示“如果已定义”和“如果未定义”。#ifdef的一般形式如下:x0dx0a#ifdef macro-namex0dx0aStatement sequencex0dx0a#endifx0dx0a如果macro-name原先已经被一个#define语句定义,则编译其中的代码块。x0dx0a#ifndef的一般形式是:x0dx0a#ifndef macro-namex0dx0aStatement sequencex0dx0a#endifx0dx0a如果macro-name当前未被#define语句定义,则编译其中的代码块。x0dx0ax0dx0a我认为,用这种,可以很方便的开启/关闭整个程序的某项特定功能。x0dx0a#ifdef和#ifndef都可以使用#else或#elif语句。x0dx0a#inlucde x0dx0a#define T 10x0dx0aInt main(void)x0dx0a{x0dx0a#ifdef tx0dx0aPrintf(“Hi T\n”);x0dx0a#elsex0dx0aPrintf(“Hi anyone\n”);x0dx0a#endifx0dx0a#ifndef Mx0dx0aPrintf(“M Not Defined\n”);x0dx0a#endifx0dx0aReturn 0;x0dx0a}x0dx0a6. #undefx0dx0a#undef指令删除前面定义的宏名字。也就是说,它“不定义”宏。一般形式为:x0dx0a#undef macro-namex0dx0a7. 使用definedx0dx0a除#ifdef之外,还有另外一种确定是否定义宏名字的方法,即可以将#if指令与defined编译时操作符一起使用。defined操作符的一般形式如下:x0dx0adefined macro-namex0dx0a如果macro-name是当前定义的,则表达式为真,否则为假。x0dx0a例如,确定宏MY是否定义,可以使用下列两种预处理命令之一:x0dx0a#if defined MYx0dx0a或x0dx0a#ifdef MYx0dx0a也可以在defined之前加上感叹号”!”来反转相应的条件。例如,只有在DEBUG未定义的情况下才编译。x0dx0a#if !defined DEBUGx0dx0aPrintf(“Final Version!\n”);x0dx0a#endifx0dx0a使用defined的一个原因是,它允许由#elif语句确定的宏名字存在。x0dx0a8. #linex0dx0a#line指令改变__LINE__和__FILE__的内容。__LINE__和__FILE__都是编译程序中预定义的标识符。标识符__LINE__的内容是当前被编译代码行的行号,__FILE__的内容是当前被编译源文件的文件名。#line的一般形式是:x0dx0a#line number “filename”x0dx0a其中,number是正整数并变成__LINE__的新值;可选的“filename”是合法文件标识符并变成__FILE__的新值。#line主要用于调试和特殊应用。x0dx0ax0dx0a9. #pragmax0dx0a#pragma是编译程序实现时定义的指令,它允许由此向编译程序传入各种指令。例如,一个编译程序可能具有支持跟踪程序执行的选项,此时可以用#pragma语句选择该功能。编译程序忽略其不支持的#pragma选项。#pragma提高C源程序对编译程序的可移植性。x0dx0a10. 预处理操作符#和##x0dx0a有两个预处理操作符:#和##,它们可以在#define中使用。x0dx0a操作符#通常称为字符串化的操作符,它把其后的串变成用双引号包围的串。例如:x0dx0a#include x0dx0a#define mkstr(s) #sx0dx0aint main(void)x0dx0a{x0dx0aPrintf(mkstr(I like C));x0dx0aReturn 0;x0dx0a}x0dx0a预处理程序把以下的语句:x0dx0aPrintf(mkstr(I like C));x0dx0a变成x0dx0aPrintf(“I like C”);x0dx0a操作符##把两个标记拼在一起,形成一个新标记。例如:x0dx0a#include x0dx0a#define concat(a,a) a##bx0dx0aint main(void)x0dx0a{x0dx0aInt xy = 10;x0dx0aPrintf(“%d”,concat(x,y));x0dx0aReturn 0;x0dx0a}x0dx0a预处理程序把以下语句:x0dx0aPrintf(“%d”,concat(x,y));x0dx0a变成x0dx0aPrintf(“%d”,xy);x0dx0a操作符#和##主要作用是允许预处理程序对付某些特殊情况,多数程序中并不需要。x0dx0a11. 预定义宏x0dx0aC规范了5个固有的预定义宏,它们是:x0dx0a__LINE__x0dx0a__FILE__x0dx0a__DATE__x0dx0a__TIME__x0dx0a__STDC__x0dx0a__LINE__和__FILE__包含正在编译的程序的行号和文件名。x0dx0a__DATE__和内容形如month/day/year(月/日/年)的串,代表源文件翻译成目标码的日期。x0dx0a__TIME__中的串代表源代码编译成目标码的时间,形如hour:minute:second(时:分:秒)x0dx0a如果__STDC__的内容是十进制常数1,则表示编译程序的实现符合标准C。

阅读全文

与c语言中表示命令的符号相关的资料

热点内容
企业内网加密app 浏览:49
腾讯云服务器怎么设置本地网络 浏览:623
日常程序员 浏览:513
哪个pe有bit加密功能 浏览:108
rust服务器是用什么ip 浏览:692
java随机字符串生成 浏览:551
数码宝贝编程人物 浏览:390
php多用户建站系统 浏览:624
加密防盗地上栓价位 浏览:671
比泽尔压缩机下载 浏览:420
深圳压缩机制造公司 浏览:882
如何给u盘单独文件加密码 浏览:284
恒温机故障源码 浏览:418
如何打开管家婆服务器支持者 浏览:266
安卓手机自带浏览器有什么用 浏览:532
老板咨询阿里云还是独立服务器 浏览:814
诺基亚手机app哪里下载 浏览:520
看比赛用哪个app 浏览:977
如何评价如故app 浏览:152
建立表结构的命令 浏览:581