标题:学习函数
关键词:函数
内容:
1 变量的储存类型
c++中变量的储存类型分为静态储存方式和动态储存方式。通过例题说明
//
// main.cpp
// 函数
//
// Created by 张良 on 2016/11/7.
// Copyright © 2016年 张良. All rights reserved.
//
#include <iostream>
void f(int a)
{
static int i=0;//这里的i就是局部静态变量,当然每次调用它只有固定的空间,所以每一次用i,都是结束后保留下来的值
int k=0;//k是动态变量,每一次使用都是重新分配空间,所以它永远是最初的值2
i+=a;
k+=2;
std::cout<<"局部静态变量:i="<<i<<'\t'<<"动态变量:k="<<k<<'\n';
}
int main()
{
for(int i=1;i<=3;i++)
f(i);
}
2 寄存器类型变量,是指由关键词register说明的局部变量;外部类型变量 关键词extern修饰的变量。
3 编译预处理
常见的预处理有以下三种:
文件包含:#include 是一种最为常见的预处理,主要是做为文件的引用组合源程序正文。
宏替换: #define,这是最常见的用法,它可以定义符号常量、函数功能、重新命名、字符串的拼接等各种功能。
条件编译:#if,#ifndef,#ifdef,#elif,#endif,#undef等也是比较常见的预处理,主要是进行编译时进行有选择的挑选,注释掉一些指定的代码,以达到版本控制、防止对文件重复包含的功能。(百度的,其实还是不太懂)
宏定义
#include<iostream>
#define M i+i
#define N (i+i)
int main()
{
int a,b,i=1;
a=2*M+3*M;//这里 a=2*i+i+3*i+i,因为这里没有加括号,i+i不是一个整体
b=2*N+3*N;//这里 b=2*(i+i)+3*(i+i)
std::cout<<"a="<<a<<'\n';
std::cout<<"b="<<b<<'\n';
}
输出为
a=7
b=10
Program ended with exit code: 0
明天继续学