当前位置: 首页 > news >正文

Linux C:预处理命令

在编译程序时所做的一系列过程

eg:  执行 gcc -oapp main.c 时

预处理命令

一、宏定义

1.不带参数的宏定义

一般形式为:

#define 标识符   字符串

eg:   #define PI 3.1415

        #define N (3 + 4)

        #define M (N * 3)

        #define K  (在程序中间进行定义)   //说明在所定义行以后出现K

定义后面不加;                 //替换数值后会造成语法错误

宏名和变量不同,PI本质上是一常量,不能作为左值来使用    【不能进行 “ PI = 18;”操作】

为了区分宏名和所定义的普通变量,规定定义的宏名所有字母大写

 只做预处理不编译: gcc  -E  -omain.i  main.c

2.带参数的宏定义

一般形式为:

#define  宏名(参数表)宏的内容

eg: 

#define ADD(a , b) ((a) +(b))    //带参宏的形参列表当中的每一个参数不需要指定数据类型

#define N(a , b , c) (ADD(a , b) + (c))

用法同不带参宏是简单的数值替换

二、“文件包含”处理

eg:   #include <stdio.h>     / #include "stdio.h"

两种表达方式:

1.绝对路径表达方式

2.相对路径表达方式

#include "/home/linux/1.txt"

#include <1.txt>         //自动去  usr/include/

#include "1.txt"           //当前所在文件的路径

3.头文件中包含:
①构造数据类型的定义
②全局变量的声明
③全局函数的声明
④宏定义
4.工程结构

1)main.c中负责主函数编写
2)功能代码.c中主要负责功能函数的编写
3)功能代码.h中主要负责声明功能代码.c中编写的功能函数
4)调用函数的文件只需加对应函数的.h头文件即可使用该函数

三、条件编译

eg:  #if 0           #endif

一般形式为:

(1)#ifdef  标识符

         程序段  1

         #else

         程序段  2

         #endif

eg:

#ifndef FUNC_H
#define FUNC_H....#endif
#if          //满足条件代码加入编译
#elif        //如果if不满足条件 elif满足加入编译
#else        //if不满足代码加入编译
#endif       //条件编译结束
#ifdef       //定义了该宏,代码加入编译
#ifndef      //没有定义该宏,代码加入编译

编译时 :gcc  文件名.c   -D

http://www.dtcms.com/a/296648.html

相关文章:

  • 225. 用队列实现栈
  • markdown学习笔记(个人向) Part.2
  • Redis高可用架构演进面试笔记
  • C#解析JSON数据全攻略
  • SpringBoot框架,不同环境中实体类对应不同的表
  • MySQL workbench的使用
  • Django 科普介绍:从入门到了解其核心魅力
  • 【Python】Python多线程爬虫实战:从基础原理到分布式架构实现
  • RCLAMP0512TQTCT 升特半导体 TVS二极管 12通道全防护芯片 以太网/PLC控制/5G基站专用
  • UE5中如何解决角色网格体“掉下去”的问题
  • 高并发系统设计面试题
  • 高效互联,ModbusTCP转EtherCAT网关赋能新能源电缆智能制造
  • Apache 消息队列分布式架构与原理
  • 六种经典智能优化算法(PSO/GWO/WOA/HHO/DBO/SSA)无人机(UAV)三维路径规划,Matlab代码实现
  • 【三桥君】大语言模型计算成本高,MoE如何有效降低成本?
  • Java学习---Spring及其衍生(下)
  • Oracle 时间处理函数和操作符笔记
  • 数据库常用DDL语言
  • 洛谷 P1996 约瑟夫问题之题解
  • LLM针对隐藏层的特征增强的相关论文
  • Python生成折线图
  • 7.24 C/C++蓝桥杯 | 排序算法
  • 外企本土化布局对国内连接器企业影响几何?
  • 排序初识(上)-- 讲解超详细
  • 【接口自动化】-1- 初识接口
  • VUE的学习
  • shell编程
  • 加密算法-----BCrypt
  • C语言第四章函数
  • Java八大基本类型