Linux C 预处理命令

预处理命令

1.1结构体的定义

        宏定义

        1.无参数宏

        无参数宏定义的一般形式为:

        #define  标识符  字符串 

        例如:  

           #define  M   (y*y+3*y)

        “#”代表本行是编译预处理命令。define是宏定义的关键词,标识符是宏名。字符串所代替的内容,可以是常数、表达式等。

        注意:宏定义和其他编译预处理命令不是以分好结尾。

        2.有参数宏

        有参数宏定义的一般形式为:
        #define   标识符(形参表)   字符串
        例如:
            #define M(y)   y*y+3*y    //宏定义
            ...
            k=M(5);   //宏调用
            ... 
        在宏调用时,用实参5来代替形参y,经过预处理宏展开后的语句为:
        k=5*5+3*5;

        3.有参数宏的注意事项

                1.带参宏定义中,宏名和形参之间不能有空格出现

                2.在带参宏定义中形式参数不分配内存单元,因此不必作类型定义。而宏调用中的实参有具体的值,要用它们去代替形参,因此必须作类型说明。这是与函数中的情况不同的。在函数中,形参和实参是两个不同的量,各有自己的作用域,调用时要把实参赋予形参,进行“值传递”。而带参宏中,只是符号代换,不存在值传递的问题。

                3.在宏定义中的形参是标识符,而宏调用的参数可以是表达式。
                4.在宏定义中,字符串的形参通常是用括号括起来,以避免出错。

1.2文件包含

        1.文件包含命令的一般形式为:

            #include"文件名"

        例如

            #include"stdio.h"

            #include"math.h"

        2.文件包含命令的功能是把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。

        3.包含命令中的文件名可以用双引号括起来,可以用尖括号括起来。

            例如:

            #include"stdio.h"

            #include<math.h">    

           但是这两种形式是有区别的:

           使用尖括号表示在包含文件目录中去查找(包含目录是由用户在设置环境时设置的),而不在源文件目录去查找。

           使用双引号则表示首先在当前的源文件目录中查找,若未找到,才到包含目录中去查找。

           用户编程时可根据自己文件所在目录来选择某一种命令形式。

1.3条件编译

           1.第一种形式

             #ifdef  标识符

                    程序段1

            #else

                    程序段2

            #endif

            2.第二种形式

            #ifndef  标识符

                    程序段1

            #else

                    程序段2

            #endif




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值