C语言第十一讲,预处理命令.
C语言第十一讲,预处理命令.
一丶预处理简介
什么是预处理,预处理就是预先处理. 我们知道,程序会经过编译,连接形成可执行文件
这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理、提前处理)。
预处理主要是处理以#开头的命令,例如#include <stdio.h>等。预处理命令要放在所有函数之外,而且一般都放在源文件的前面。
二丶预处理命令
1.#include<> or #include""
#include命令是包含命令.<> 代表包含的是系统头文件. " " 表示包含的是自己定义的头文件
包含的意思就是 复制粘贴一份.但是我们可以放到一个文件中去保存.不影响代码可读性.
例如:
我们有一个A.h文件.其内容为下.
struct A
{
int a;
int b;
int c;
}
我们有一个.c文件.
#include"A.h" int main()
{
struct A a;
a.a = ;
}
可以看出我们直接包含了结构体struct A,我们就可以直接定义结构体变量进行使用了.
其本质则是.
struct A
{
int a;
int b;
int c;
} int main()
{
struct A a;
a.a = ;
}
三丶C语言的宏定义命令
#define语句的使用
#define语句就是替换的意思.在编译之前.我们将某个值定义为某个值.
#include <stdio.h> #define NUMBER 100 int main()
{
int sum = + NUMBER;
printf("%d\n", sum);
return ;
}
使用完#define命令之后, NUMBER代表的就是100.
四丶C语言的带参宏
在C语言中,C宏可以是有参数的.
定义语句如下:
#define 宏名(形参列表) 字符串
例如:
#define MAX(A,b) (((A) > (b))?((A): (b))); int main()
{
int a = MAX(,);
printf("%d",a);
}
输出结果:
我们只需要宏展开即可, A代表3,b代表4.
五丶条件宏的定义
指令 用途
# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写
#endif 结束一个#if……#else条件编译块
#error 停止编译并显示错误信息
条件宏就是有条件的.比如 ifdef
#define DBG
#ifdef DBG 如果定义了宏DBG
#include<xxx.h>
#undef DBG 取消定义DBG宏.则下方在使用ifdef判断是否定义的DBG宏则会是没有定义.
C语言第十一讲,预处理命令.的更多相关文章
- C++学习(二十七)(C语言部分)之 预处理命令
结构体 联合 枚举 联合 只能保存最后赋值的结果枚举 所有可能值列出来 预处理命令是在编译前期的阶段 代码-(编译)-->可执行文件(exe)预编译 编译前对代码处理 *1.插入头文件的内容 # ...
- C语言第十一回合:预处理命令的集中营
C语言第十一回合:预处理命令的集中营 [学习目标] 1. 宏定义 2. 文件包括"处理 3. 条件编译 预处理命令:能够改进程序设计的 ...
- C语言中的预处理命令
预处理功能是C语言的重要功能. 问:为什么要预处理,什么是预处理? 答:我们知道高级语言的运行过程是通过编译程序(编译器)把源代码翻译成机器语言,实现运行的.编译程序的工作包含:语法分析.词法分析.代 ...
- C语言include预处理命令与多文件编译
#include预处理命令几乎使我们在第一次接触C的时候就会碰到的预处理命令,可我现在还不怎么清楚,这次争取一次搞懂. 一.#include预处理指令的基本使用 预处理指令可以将别处的源代码内容插入到 ...
- 【C语言入门教程】2.8 C 语言的预处理命令
预处理命令是在程序编译阶段进行执行的命令,用于编译与特定环境相关的可执行文件.预处理命令扩展了 C 语言,本节将选择其中一些常用的预处理命令进行讲解. 2.8.1 宏替换命令 宏替换命令的作用类似于对 ...
- 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出
[源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 ...
- C语言之预处理命令
/**************************************************************************** Title:C之预处理命令 Time:201 ...
- C语言预处理命令总结大全
C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境.本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性.ANS ...
- C语言预处理命令详解
一 前言 预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置. 预处理是C语言的一个重要功能 ...
随机推荐
- centos关机与重启命令 shutdown -r now 立刻重启
centos关机与重启命令详解与实战 Linux centos重启命令: .reboot .shutdown -r now 立刻重启(root用户使用) .shutdown -r 过10分钟自动重启( ...
- Matplotlib 基本用法
1.基础应用 >>> import matplotlib.pyplot as plt >>> import numpy as np #使用np.linspace定义 ...
- javascript 跨域 的几种方法
1.jsonp方法 转:https://blog.csdn.net/liusaint1992/article/details/50959571 主要实现功能: 1.参数拼装. 2.给每个回调函数唯 ...
- IOS xib和代码自定义UIView
https://www.jianshu.com/p/1bcc29653085 总结的比较好 iOS开发中,我们常常将一块View封装起来,以便于统一管理内部的子控件. 下面就来说说自定义View的封装 ...
- MFC程序执行后台操作时不允许操作界面的一种方法
在使用MFC编写界面程序时,有时候会遇到像点击按钮后,后台进行大量操作后才显示处理结果这种情况,在后台处理过程中,界面不应该被允许做任何操作,这里介绍一种方法. 解决办法 点击按钮后,弹出一个模态对话 ...
- async/await的特殊的地方
一:async如果是用于方法声明里,那么要求这个方法的返回值必须是Task.Task<TResult>.void这三种,而且await出现的地方要求其所在的方法必须是async修饰的方法: ...
- apache、nginx、tomcat配置方法
https://www.cnblogs.com/chenmh/p/5121830.html
- java实现随机产生6位数的方法总结
package com.yin.test; import java.util.Random; import org.junit.Test; /** * @author v_yinyl * @date ...
- 2018年2月19日我的java学习
2019/2/18 星期一今天学习了Java 中的面向对象思想主要学习了类 构造器等在学习修饰属性的过程中,有4点必须牢记前提是理解类的各种关系 类中有5种关系 本身 同包类 同包继承子类 不同包继承 ...
- 使用root用户登录到AWS EC2服务器
首先是在putty中使用ec2-user登录服务器后,创建root账户的密码,使用如下命令: sudo passwd root 然后会提示你输入new password,输入之后回车,会让你retyp ...