2019.7.15
宏定义
1.不带参数的宏定义:
宏定义又称为宏代换、宏替换,简称“宏”。
格式:
#define标识符文本
其中的标识符就是所谓的符号常量,也称为“宏名”。
预处理(预编译)工作也叫做宏展开:将宏名替换为文本(这个文本可以是字符串、可以是代码等)。
掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。
即在对相关命令或语句的含义和功能作具体分析之前就要换:
例:
#define PI 3.1415926
把程序中全部的标识符PI换成3.1415926
说明:
(1)宏名一般用大写
(2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义
(3)可以用#undef命令终止宏定义的作用域
(4)宏定义可以嵌套
2.带参数的宏:
除了一般的字符串替换,还要做参数代换
格式:
#define 宏名(参数表) 文本
例如:#define S(a,b) ab
area=S(3,2);第一步被换为area=a
b; ,第二步被换为area=32;
类似于函数调用,有一个哑实结合的过程:
(1)实参如果是表达式容易出问题
#define S® r
r
area=S(a+b);第一步换为area=rr;,第二步被换为area=a+ba+b;
正确的宏定义是#define S® (®*®)
(2)宏名和参数的括号间不能有空格
(3)宏替换只作替换,不做计算,不做表达式求解
(4)函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内存
(5)宏的哑实结合不存在类型,也没有类型转换。
(6)宏展开使源程序变长,函数调用不会
(7)宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、值传递、返回值)

c++中什么是头文件,用来干什么?
最简单粗暴的理解就是:将别的文件中的代码插入指定位置。

1、最通俗的理解,头文件就是将别的文件里的代码插入到编程代码中32313133353236313431303231363533e59b9ee7ad9431333361303736的一种方式。它使用#include指令,比如“include “ABCD.h””这个指令告诉编译器,我这儿要加入一些代码,这些代码在一个叫"ABCD.h"的文件中,将这个文件的内容直接全部插入到这一代所在位置就好。一般习惯于用.h或.hpp作为这类文件的扩展名。
2、这个功能的最主要的作用是,将一些现成的,固有的定义、函数、代码、引用等等引入到你的编程中来,你就不需要再进行这样一些重复的工作了。
3、在C++编程环境中,最典型的VC、BCB、TC……中,都必须以这样的将编程环境固有的一些函数、变量定义、引用等进行“预准备”否则一般级别的人就无法进行常规的编程,因为没有现成可用的函数、定义等。
4、高级别的有特殊需要的编程者可以自已编写相关的定义、函数,也可以修正修改环境固有的这类东西,这也正是C++强大的一个特点,同时也是它的麻烦所在(初学者常常不知道要引用哪些头文件)。
5、从事C++编程工作的人,自已编写的,认为常常要用到的一些函数,或定义,或习惯,也可以自已做成一个头文件,在编程中引用,这样可以减少很大的不必要的重复工作量。

C语言程序设计摘抄笔记1相关推荐

  1. C语言程序设计摘抄笔记2

    2020/7/16 在C语言中,&有三种作用,分别如下: 取地址.单目运算符.用来取一个变量的地址. 比如 int i, *p; p = &i;//这里的&作用是取变量i的地址 ...

  2. C语言程序设计摘抄笔记3

    2021/3/5 17:31 优先级排序为:算术运算bai符 > 关系运算符 > 赋值运算. 算术运算符中,乘法运算符[*].除法运算符[/].取余运算符[%]属于优先级第三级,加法运算符 ...

  3. c语言用户自己建立数据类型,C语言程序设计学习笔记--用户建立数据类型

    C语言程序设计学习笔记--用户建立数据类型. 9.1定义和使用结构体变量 1.定义:C语言允许用户自己建立不同类型数据组合成的组合型数据类型就是结构体 2.形式: struct 结构体名 { 成员表列 ...

  4. C语言程序设计学习笔记:P1-程序设计与C语言

    本系列博客用于记录学习浙江大学翁恺老师的C语言程序设计,系列笔记链接如下: C语言程序设计学习笔记:P1-程序设计与C语言 C语言程序设计学习笔记:P2-计算 C语言程序设计学习笔记:P3-判断 C语 ...

  5. C语言程序设计学习笔记:P3-判断

    本系列博客用于记录学习浙江大学翁恺老师的C语言程序设计,系列笔记链接如下: C语言程序设计学习笔记:P1-程序设计与C语言 C语言程序设计学习笔记:P2-计算 C语言程序设计学习笔记:P3-判断 C语 ...

  6. 《C语言程序设计》笔记

    <C语言程序设计>笔记 因为我们大学是先学raptor再学c语言的,所以C语言的书籍会出的有点晚 目录: C语言概述 C语言编程基础 顺序结构程序设计 选择结构程序设计 循环结构程序设计 ...

  7. C语言程序设计学习笔记:P5-循环控制

    本系列文章为浙江大学翁恺C语言程序设计学习笔记,前面的系列文章链接如下: C语言程序设计学习笔记:P1-程序设计与C语言 C语言程序设计学习笔记:P2-计算 C语言程序设计学习笔记:P3-判断 C语言 ...

  8. C语言程序设计---读书笔记汇总(整理中)

    目录 一  写在前面 1.1 书籍信息 1.2 简单叙述 二   类型.运算符与表达式 2.1 变量名 2.2 数据类型及长度 2.3 常量 2.4 声明 2.5 算数运算符 2.6 关系运算符与逻辑 ...

  9. 清华郑莉C++语言程序设计学习笔记(1)- 绪论、C++简单程序设计、函数

    程序运行调试 步骤:创建项目.设置断点.运行调试 在生成发布版本前,需要清除早期生成过程中创建的中间文件和输出文件,确保其是最终版本. 操作:①生成->清理解决方案:②debug->rel ...

  10. go语言程序设计学习笔记-1

    https://www.jb51.net/article/126998.htm go标准库文档https://studygolang.com/pkgdoc 1. 如果想要再本地直接查看go官方文档,可 ...

最新文章

  1. 换掉 Maven,我用它!!!
  2. 第三十五课:多普勒效应和宇宙大爆炸
  3. https ddos攻击——由于有了认证和加解密 后果更严重 看绿盟的产品目前对于https的ddos cc攻击需要基于内容做检测...
  4. mysql数据库异地备份Shell脚本
  5. html oninput的作用,html范围滑块 - oninput在IE 11中不起作用
  6. 不均衡数据集采样1——SMOTE算法(过采样)
  7. 不能使用zsh或myzsh创建/切换 包含#的分支名(zsh: bad pattern: #xxx)
  8. linux删除目录下文件的几种方法
  9. 搞定短视频!批量下载快手视频(附源码)
  10. git下载、安装、配置与简单应用(git上路之始)
  11. 禁止QQ自动转义表情字符
  12. DirectShow介绍
  13. u盘资料误删怎么恢复 怎样找回u盘里误删的文件
  14. 32位16进制转换为10进制数
  15. 化工集团公司数字化转型有力抓手“数字化示范项目建设
  16. Chrome 收藏夹
  17. 【ICML 2015迁移学习论文阅读】Unsupervised Domain Adaptation by Backpropagation (DANN) 无监督领域自适应
  18. java英文介绍范文_java的英文自我介绍范文
  19. 《机器学习实战》学习笔记(三):决策树
  20. 啪啪打脸,国际互联网协会数据泄露

热门文章

  1. 580集photoshop顶尖视频教程送给你,设计总监手把手带你学ps!
  2. 【生活日记】  路在脚下,更在心中,心随路转,心路常宽
  3. rar怎么用计算机打开,解答电脑rar文件怎么打开
  4. 十进制转换为二进制代码
  5. 在vue中修改数组某个元素,值变了,渲染不了
  6. windows10彻底关闭自动更新
  7. 未来发展人工智能的意义是什么?
  8. 【视频学习】宋维钢词霸天下38000词汇速记 万法归宗之英语语法速成全集
  9. matlab的句柄 图形对象 gca gco gcf set get
  10. 动态规划求解金矿问题