`

21天学通C语言第五天---函数

阅读更多

函数的结构:

1.函数原型 return_type fun_name{arg_type name1,arg_type name2};

2.函数定义return_type fun_name{arg_type name1,arg_type name2}{函数体}

内联函数:用Inline来定义内联函数

内联函数和宏的区别在于,宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现的。而且内联函数是真正的函数,只是在需要用到的时候,内联函数像宏一样的展开,所以取消了函数的参数压栈,减少了调用的开销。你可以象调用函数一样来调用内联函数,而不必担心会产生于处理宏的一些问题。

内联函数必须是和函数体申明在一起,才有效。像这样的申明Inline Tablefunction(int I)是没有效果的,编译器只是把函数作为普通的函数申明,我们必须定义函数体。
Inline tablefunction(int I) {return I*I};

这样我们才算定义了一个内联函数。我们可以把它作为一般的函数一样调用。但是执行速度确比一般函数的执行速度要快。

  我们也可以将定义在类的外部的函数定义为内联函数,比如:
Class TableClass{

 Private:

  Int I,j;

 Public:

  Int add() { return I j;};

  Inline int dec() { return I-j;}

  Int GetNum();

}

inline int tableclass::GetNum(){

return I;

}
  上面申明的三个函数都是内联函数。在C 中,在类的内部定义了函数体的函数,被默认为是内联函数。而不管你是否有inline关键字。

 当然,内联函数也有一定的局限性。就是函数中的执行代码不能太多了,如果,内联函数的函数体过大,一般的编译器会放弃内联方式,而采用普通的方式调用函数。这样,内联函数就和普通函数执行效率一样了。

分享到:
评论

相关推荐

    21天学通C语言第六版(PDG)

    本书译自《Teach Yourself C in 21 Days》第6版,该书的前五版都登上了畅销书排行榜,是初学者学习C语言的经典之作。本版按最新的标准(ISO/IEC:9899-1999),以循序渐进的方式介绍了C语言编程方面的知识,并提供了...

    21天学通c语言(第六版)

    本书译自《Teach Yourself C in 21 Days》第6版,该书的前五版都登上了畅销书排行榜,是初学者学习C语言的经典之作。本版按最新的标准(ISO/IEC:9899-1999),以循序渐进的方式介绍了C语言编程方向的知识,并提供了...

    21天学通C++ 第2版

    21天学通C++ 第2版 出版社: 电子工业出版社; 第2版 (2011年2月1日) 丛书名: 21天学编程系列 平装: 418页 正文语种: 简体中文 《21天学通C++(第2版)》站在初学者的角度,较全面地介绍了C++的相关知识,较为系统...

    【TakeLionOS第六课】TakeLionOS汇编与C语言自学笔记-第五课.rar

    按照《21天学通C语言》(第七版),有如下二个例子。 一个例子输出一段话,另一个例子计算年份: //1、files:hello1.c hello1no.s hello1.exe #include int main(void) { printf("This is an example of ...

    【TakeLionOS第五课】TakeLionOS汇编与C语言自学笔记-第四课.rar

    按照《21天学通C语言》(第七版),有如下二个例子。其中一个改为输出黑桃符号,是练习题3修改一下的: //1、files:helloxy.c helloxy.i helloxyno.s helloxy.exe #include int x,y; int main(void) { for (x = ...

    C语言通用范例开发金典.part2.rar

    ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函数:InOrderTraverse函数 1.4.9 中序遍历...

    C语言经典例题100道

    输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯并按条件打印笑脸 11.经典兔子问题 12.判断素数 13.水仙花数问题 14.正整数分解质...

    C语言通用范例开发金典.part1.rar

    第1章 数据结构. 1 1.1 数组和字符串 2 1.1.1 一维数组的倒置 2 范例1-1 一维数组的倒置 2 ∷相关函数:fun函数 1.1.2 一维数组应用 3 范例1-2 一维数组应用 3 1.1.3 一维数组的高级应用 5 范例1-3 一维数组...

    浙江大学C语言上机练习题附答案

    第5周(M5) 21 30001 求一元二次方程的根 21 30002 求分段函数的值 23 30003 分类统计字符 23 30004 显示五级记分制成绩所对应的百分制成绩区间(使用switch) 24 30005 显示水果的价格(使用switch) 25 30007 求...

    《你必须知道的495个C语言问题》

    第5章 空指针 53 空指针和空指针常量 53 5.1 臭名昭著的空指针到底是什么? 53 5.2 怎样在程序里获得一个空指针? 54 5.3 用缩写的指针比较“if(p)”检查空指针是否有效?如果空指针的内部表达不是0会怎样...

    21天学会C++精品付费视频教程

    零基础学习C++,不需要学过C语言就可以学这门课。 课程目录: 第1讲 VC++2008速成版下载和安装 第2讲 第1章绪论:C++简介 第3讲 第1章绪论:程序设计的基本概念 第4讲 第2章C++程序的组成部分 第5讲 第3章变量...

    滴水三期完整版(96课时)

    第5讲:2015-01-16(内存寻址-堆栈05) 第6讲:2015-01-19(EFLAGS寄存器06) 第7讲:2015-01-20(JCC) 第8讲:2015-01-21(堆栈图) 第8讲:2015-01-21(宝马问题) 第9讲:2015-01-22(堆栈图2) 第10讲:2015-01-23...

    C语言程序设计实验报告

    (6)教材第5章编程题第5题:编写程序计算用户输入所得额的税金。 说明:本题考查简单的选择结构。 (7)教材第5章编程题第11题:编写程序实现将用户输入的两位数转化为英文。 说明:本题考查switch语句的应用。 ...

    你必须知道的495个C语言问题

    第5章 空指针 空指针和空指针常量 5.1 臭名昭著的空指针到底是什么? 5.2 怎样在程序里获得一个空指针? 5.3 用缩写的指针比较“if(p)”检查空指针是否有效?如果空指针的内部表达不是0会怎样? NULL宏 ...

    c语言题库问题和答案.docx

    函数习题(2):输入年月日,输出是本年第几天 53%(2842/5315) 48% 2020-4-23 1033 数组习题(1):求矩阵中最大元素值,并与同行对角线元素交换 42%(2674/6374) 59% 2020-4-23 1034 函数习题(3):函数实现求最大公约数...

    C语言实战105例源码

    第5部分 图形篇 实例61 制作表格 172 实例62 用画线函数作出的图案 174 实例63 多样的椭圆 176 实例64 多变的立方体 177 实例65 简易时钟 178 实例66 跳动的小球 181 实例67 用柱状图表示学生...

    上海电机学院C语言实训答案

    (21)求 的值,其中a是一个数字,如2+22+222+2222+22222(此时a=2,n=5),a和n均由键盘输入。 (22)读入一批正整数(以零或负数为结束标志),求其中的奇数和。 (23) 利用泰勒级数sin(x)≈ 计算sin(x) 的值。...

    C语言FAQ 常见问题列表

    o 5.4 我有个函数,它应该接受并初始化一个指针 void f(int *ip) { static int dummy = 5; ip = &dummy;} 但是当我如下调用时: int *ip; f(ip); 调用者的指针却没有任何变化。 o 5.5 我能否用 void** 指针作为参数,...

Global site tag (gtag.js) - Google Analytics