精华内容
下载资源
问答
  • C语言预处理指令

    2017-06-18 22:06:30
    预处理指令是以#号开头的代码行,#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符,...空指令,无任何效果 #include 包含一个源代码文件 #d
    预处理指令是以#号开头的代码行,#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换

    下面是本章涉及到的部分预处理指令:
    指令 说明
    # 空指令,无任何效果
    #include 包含一个源代码文件
    #define 定义宏
    #undef 取消已定义的宏
    #if 如果给定条件为真,则编译下面代码
    #ifdef 如果宏已经定义,则编译下面代码
    #ifndef 如果宏没有定义,则编译下面代码
    #elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
    #endif 结束一个#if……#else条件编译块

    预处理功能是C语言特有的功能,它是在对源程序正式编译前由预处理程序完成的,程序员在程序中用预处理命令来调用这些功能。

    宏定义可以带有参数,宏调用时是以实参代换形参,而不是“值传送”。

    为了避免宏代换时发生错误,宏定义中的字符串应加括号,字符串中出现的形式参数两边也应加括号。

    文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译,结果将生成一个目标文件。

    条件编译允许只编译源程序中满足条件的程序段,使生成的目标程序较短,从而减少了内存的开销并提高了程序的效率。

    使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。
    展开全文
  • c语言 预处理指令

    2017-03-08 15:12:04
    指令  用途  # 空指令,无任何效果  #include 包含一个源代码文件   #define 定义宏  #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已

    指令              用途 

    #            空指令,无任何效果          

    #include     包含一个源代码文件         

     #define      定义宏 

    #undef      取消已定义的宏           

    #if          如果给定条件为真,则编译下面代码          

    #ifdef       如果宏已经定义,则编译下面代码          

    #ifndef      如果宏没有定义,则编译下面代码           

    #elif        如果前面的#if给定条件不为真,当前条件为真,则编译下面代码          #endif      结束一个#if……#else条件编译块          

    #error      停止编译并显示错误信息

    展开全文
  • C语言预处理指令总结

    2019-05-11 21:11:56
    预处理指令是以#号开头的代码行,#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在... 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #...

    预处理指令是以#号开头的代码行,#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。

    下面是本章涉及到的部分预处理指令:

    指令 说明
    # 空指令,无任何效果
    #include 包含一个源代码文件
    #define 定义宏
    #undef 取消已定义的宏
    #if 如果给定条件为真,则编译下面代码
    #ifdef 如果宏已经定义,则编译下面代码
    #ifndef 如果宏没有定义,则编译下面代码
    #elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码
    #endif 结束一个#if……#else条件编译块


    预处理功能是C语言特有的功能,它是在对源程序正式编译前由预处理程序完成的,程序员在程序中用预处理命令来调用这些功能。

    宏定义可以带有参数,宏调用时是以实参代换形参,而不是“值传送”。

    为了避免宏代换时发生错误,宏定义中的字符串应加括号,字符串中出现的形式参数两边也应加括号。

    文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译,结果将生成一个目标文件。

    条件编译允许只编译源程序中满足条件的程序段,使生成的目标程序较短,从而减少了内存的开销并提高了程序的效率。

    使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。

    展开全文
  • 但在单片机的C言语编程中,常常需求用几个空指令发作短延时的效果。这在汇编言语中很简略结束,写几个nop就行了。在keil C51中,直接调用库函数:#include // 声了解void _nop_(void);_nop_(); // 发作一条NOP指令...

    规范的C言语中没有空句子。但在单片机的C言语编程中,常常需求用几个空指令发作短延时的效果。这在汇编言语中很简略结束,写几个nop就行了。

    在keil C51中,直接调用库函数:

    #include // 声了解void _nop_(void);

    _nop_(); // 发作一条NOP指令

    效果:对于延时很短的,恳求在us级的,选用“_nop_”函数,这个函数恰当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延不时刻,对于12M晶振,延时1uS。对于延时比照长的,恳求在大于10us,选用C51中的循环句子来结束。

    在选择C51中循环句子时,要留心以下几个疑问

    榜首、界说的C51中循环变量,尽量选用无符号字符型变量。

    第二、在FOR循环句子中,尽量选用变量减减来做循环。

    第三、在do…while,while句子中,循环体内变量也选用减减办法。

    这因为在C51编译器中,对纷歧样的循环办法,选用纷歧样的指令来结束的。

    下面举例阐明:

    unsigned char i;

    for(i=0;i<255;i++);

    unsigned char i;

    for(i=255;i>0;i--);

    其间,第二个循环句子C51编译后,就用DJNZ指令来结束,恰当于如下指令:

    MOV 09H,#0FFH

    LOOP: DJNZ 09H,LOOP

    指令恰当简练,也极好核算精确的延不时刻。

    相同对do…while,while循环句子中,也是如此

    例:

    unsigned char n;

    n=255;

    do{n--}

    while(n);

    n=255;

    while(n)

    {n--};

    这两个循环句子经过C51编译往后,构成DJNZ来结束的办法,

    故其精确时刻的核算也很便当。

    其三:对于恳求精确延不时刻更长,这时就要选用循环嵌套的办法来结束,因此,循环嵌套的办法常用于抵达ms级的延时。对于循环句子相同能够选用for,do…while,while构造来结束,每个循环体内的变量依然选用无符号字符变量。

    unsigned char i,j

    for(i=255;i>0;i--)

    for(j=255;j>0;j--);

    unsigned char i,j

    i=255;

    do{j=255;

    do{j--}

    while(j);

    i--;

    }

    while(i);

    unsigned char i,j

    i=255;

    while(i)

    {j=255;

    while(j)

    {j--};

    i--;

    }

    这三种办法都是用DJNZ指令嵌套结束循环的,由C51编译器用下面的指令组合来结束的

    MOV R7,#0FFH

    LOOP2: MOV R6,#0FFH

    LOOP1: DJNZ R6,LOOP1

    DJNZ R7,LOOP2

    这些指令的组合在汇编言语中选用DJNZ指令来做延时用,因此它的时刻精确核算也是很简略,假上面变量i的初值为m,变量j的初值为n,则总延不时 间为:m×(n×T+T),其间T为DJNZ指令施行时刻(DJNZ指令为双周期指令)。这儿的+T为MOV这条指令所运用的时刻。相同对于更长时刻的延 时,能够选用多重循环来结束。

    只需在程序计划循环句子时留心以上几个疑问。

    下面给出有关在C51中延时子程序计划时要留心的疑问

    1、在C51中进行精确的延时子程序计划时,尽量不要或少在延时子程序中界说有些变量,悉数的延时子程序中变量经过有参函数传递。

    2、在延时子程序计划时,选用do…while,构造做循环体要比for构造做循环体好。

    3、在延时子程序计划时,要进行循环体嵌套时,选用先内循环,再减减比先减减,再内循环要好。

    unsigned char delay(unsigned char i,unsigned char j,unsigned char k)

    {unsigned char b,c;

    b="j";

    c="k";

    do{

    do{

    do{k--};

    while(k);

    k="c";

    j--;};

    while(j);

    j=b;

    i--;};

    while(i);

    }

    这精确延时子程序就被C51编译为有下面的指令组合结束

    delay延时子程序如下:

    MOV R6,05H

    MOV R4,03H

    C0012: DJNZ R3, C0012

    MOV R3,04H

    DJNZ R5, C0012

    MOV R5,06H

    DJNZ R7, C0012

    RET

    假定参数变量i的初值为m,参数变量j的初值为n,参数变量k的初值为l,则总延不时刻为:l×(n×(m×T+2T)+2T)+3T,其间T为 DJNZ和MOV指令施行的时刻。当m=n=l时,精确延时为9T,最短;当m=n=l=256时,精确延时到16908803T,最长。

    展开全文
  • 但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。在keil C51中,直接调用库函数:#include // 声明了void _nop_(void);_nop_(); // 产生一条NOP指令...
  • 这虽然只是指令解析的一部分,但这是最核心部分。完整指令为:AT+REG[admin][2][00:0C:29:AA:0B:A7]。/**************************************************************** *...指令结尾必须为即’\0’或’\n’。 *
  • c语言预处理器指令

    千次阅读 2014-01-06 22:51:20
    c语言有强大的预处理器指令,在很多情况下都是很有用的。 首先介绍什么是预处理器,预处理器就是在程序的源代码编译之前,会对程序进行翻译工作,就是把这程序\之后的回车去掉,以及去掉注释,然后会把之间的...
  • 在单片机C语言中加入NOP指令

    千次阅读 2009-03-02 15:24:00
    但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。在AVR-GCC中,我用如下方法嵌入汇编指令:asm ("nop; nop; nop; nop;" ::);在keil C51中,直接调用...
  • C语言中的预编译指令

    2015-07-23 19:02:48
    指令 用途  # 空指令,无任何效果  #include 包含一个源代码文件  #define 定义宏  #undef 取消已定义的宏  #if 如果给定条件为真,则编译下面代码  #ifdef
  • 预处理程序提供了条件编译的功能。 可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。条件编译有三种形式,下面分别介绍: ...如果没有程序段2(它为),本格
  • void 可以用来定义类型指针,该指针不指向任何类型,但是在需要时可以转化为任何类型 2 嵌入式C语言在编译的时候,会先对程序中一些特殊的命令进行预处理,然后将预处理的结果和源程序一起再进行编译 预处理包括...
  • 初学C语言

    2020-11-29 23:58:13
    1.C语言的语句是用于向计算机系统发出操作指令。 2.C语言程序通常包括数据描述,(由声明部分来实现)和数据操作(由C语言来实现)。 3.C语言分为五类,控制语句、函数调用语句、表达式语句、语句、复合语句。 (1...
  • 但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。在keil C51中,直接调用库函数:#include// 声明了void _nop_(void);_nop_();// 产生一条NOP指令作用...
  • C语言数据类型-指针类型和类型

    千次阅读 2017-07-31 11:55:47
    指针类型指针是什么C语言的指针类型包括两方面的信息: 一是地址,存放在指针变量中; 二是类型信息,关乎于读写的长度,没有存储在指针变量中,位于用该指针读写时的mov指令中,不同的读写长度对应的mov指令不同 ...
  • huanmiaojulie 于 2017-08-14 10:39:56发表:感谢分享duanshupeng 于 2017-06-21 10:37:15发表:66han19850618 于 2016-12-29 10:44:11发表:文件打开右边是空白的han19850618 于 2016-12-29 10:39:27发表:支持下...
  • 内存指令 malloc 原型:extern void *malloc(unsigned int num_bytes); 头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)  功能:分配长度为num_bytes字节的内存块  说明...
  • C语言

    2014-12-10 15:14:17
    较长的宏中的逗号运算符宏定义中的do-while循环do 操作的定义 预定义宏 C语言中常用的宏 1. 简单宏定义 简单的宏定义有如下格式: [#define指令(简单的宏)] #define 标识符替换列表 ...
  • 标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。
  • 基础C语言总结

    2021-01-25 19:10:36
    理一下基础C语言…便于复习 预处理 说明 使用#表示预处理 在编译之前执行 ...# //空指令 特殊的,用#define可以定义一个函数实现简单函数的重载 注释 行注释//内容 段注释 /*内容*/ 语句 分号
  • C语言的控制语句

    2020-04-16 11:44:33
    c语言控制语句 C语言语句 语句是构造程序的基本成分。分号是C语言语句的结束符号,一条C语言 ...注意: C语言的最简单的语句是语句,就一个分号 ; 。 执行语句的效果是消耗执行语句消耗的时间而已。 复合语...
  • 20~30个linux命令: ls:显示文件或目录   -l:列出详细信息(list) ...touch:创建文件 echo:创建带有内容的文件 cat:查看文件内容 cp:拷贝 mv:移动或重命名 rm:删除文件 rmdir:删除目录 pw
  • c语言预处理命令

    2020-10-30 13:19:07
    预处理指令是以#号开头的代码行,# ... 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经
  • c语言学习

    2015-12-04 17:46:41
    简单的指令 int 定义变量类似于visual basic中的dim printf 输出 void还没有搞明白,不过貌似表示的是空白,意思是说void main()在输入后可以不用加return,而intmain()或者main()要加上return ,否则warning
  • 时磊Sr亦 时磊忖呎 时 磊 忖呎 标准的C语言中没有空语句但在单片机的 C语言编程中经常需要用几个空指令产生短 延时的效果 这在汇编语言中很容易实现写几个 nop就行了 在keil C51中直接调用库函数 #include...
  • C语言三种预处理功能

    千次阅读 2018-08-12 02:09:14
    C语言三种预处理功能   伪指令(或预处理指令)定义: 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字... # 空指令,无任何效果 #include 包含...
  • 但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。 在keil C51中,直接调用库函数: #include // 声明了void _nop_(void); _nop_(); // 产生一条NOP...
  • C语言编译原理介绍

    千次阅读 2014-04-02 20:46:01
    c语言编译原理图 1、预处理指令:gcc -E file.c -o hello.i # 删除所有的注释,以空格代替 # 将所有的#define删除,并且展开所有的宏定义 # 处理条件编译指令#if,#... # 空指令,无任何效果  #include 包含一个
  • C语言程序设计教案cjiaoxu.ppt第四章 C程序流程设计,C语句概述,程序的三种基本结构,选择型程序设计,循环型程序设计,辅助控制语句,4.1 C语句概述,C语句以“;”作分隔符,编译后产生机器指令. C语句分类 表达式语句...
  • 标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。  这在汇编语言中很容易实现,写几个nop就行了。

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 249
精华内容 99
关键字:

c语言空指令

c语言 订阅