//
// main.cpp
// 内置函数和变量作用域
//
// Created by 周双建 on 16/4/19.
// Copyright © 2016年 周双建. All rights reserved.
//
/************************************************************************/
/*!
* 内置函数
* 1.什么是内置函数?
程序在编译的时候将所调用函数的代码嵌入到主程序中。这种嵌入到主程序中的函数称为内置函数。
* 2.内置函数有什么好处?
内置函数大大地提高程序的执行效率。
* 3.使用场景
例如:调用函数需要一定的时间,如果有些函数需要频繁的使用,则累积所调用的时间会很长,降低程序的执行效率,这时候,我们就可以使用内置函数(内联函数)来提高我们程序的执行效率。
* 4.内置函数的指定方法
指定内置函数很简单,只须在函数的首行左边加上 inline 就可以了。
*/
#include <iostream>
using namespace std;// 创建命名空间
inline int max_c(int a ,int b,int c ){
if (a>b) {
b = a;
}else if (c>b){
b= c;
}else{
b = b;
}
return b;
}// 求三个整数的最大数(这是一个内置函数)
//int main(int argc, const char * argv[]) {
// int i = 25 , j = 30 ,k = 21,m ; // 程序常量和变量的声明
// m = max_c(i, j, k); // 调用函数
// cout<<"max_c:"<<m<<endl; // 函数的输出
// return 0;
//}
/*!
* 程序的解读
在函数被指定为内置函数,编译系统在遇到改内置函数时,就用内置函数体代替调用内置函数的,同时将实参代替形参。这样 m = max_c(i, j, k); 就被换成:
{
if (a>b) {
b = a;
}else if (c>b){
b= c;
}else{
b = b;
}
return b;
}
* 程序输出:
max_c:30
Program ended with exit code: 0
*
* 内置函数和#define 的区别和像似。
宏定义是在编译前由预处理程序对其预处理的,它只是简单的字符置换而不做语法的检查。
内置函数是编译系统在遇到改内置函数时,就用内置函数体代替调用内置函数的,同时将实参代替形参。
*/
/************************************************************************/
/*!
* 作用域运算符
* 前言:
每一个变量都有其有效的作用域,只能在变量的作用域内使用该变量,不能直接使用其他作用域中的变量。
*
*/
// 请猜下面输出的结果???
//float a = 250.0; // 全局变量
//int main(){
// int a = 20 ; // 局部变量
// cout<<"Result :"<< a<<endl;
// return 0;
//}
/*!
* 1、 输出的结果:
Result :20
Program ended with exit code: 0
*
* 2、 为什么输出的是 20 而不是 250.0 ???
答: 这是变量的生命周期的问题。量的输出是采用最近取值。
*
* 3、 我想输出 250.0 怎么做????
答: C++ 提供了作用域运算符 “::”,可以访问全局变量或常量。
*/
float a = 250.0; // 全局变量
int main(){
int a = 20 ; // 局部变量
cout<<"Result :"<< a<<endl;
cout<< "Result_C:"<< ::a <<endl;
return 0;
}
/*!
* 1、 输出结果
Result :20
Result_C:250
Program ended with exit code: 0
*
* 2、 “::a” 表示访问全局变量的 a ,而不是局部变量的 a .
*/
/************************************************************************/