首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++函数定义 | 输出有

C++无函数的定义 函上一节小林已经讲过,从函数形式来看,函数分为无函数和有函数,那么他们有什么不同呢?...定义无函数的一般形式为 类型标识符 函数名([void])//注意void可以省略不写 {   声明部分   语句 } C++有函数的定义 有函数,顾名思义,有参数的函数,和无函数相比,有函数多了参数...,定义如下所示 类型标识符 函数名(形式参数表列) {   声明部分   语句 } 学习了无函数和有函数的不同,接下来看一个例子巩固下知识点 经典案例:C++实现无参数和有参数函数,并输出相应文字描述...PrintFace(3);//调用有函数    return 0;//函数返回值为0  } 执行本程序之后,会输出 我是无函数 ---------------- 3 我是有函数 --------...C++输出有 更多案例可以go公众号:C语言入门到精通

1.3K2927
您找到你想要的搜索结果了吗?
是的
没有找到

漫谈C变量——夏虫不可

还有一类头顶上没有花括号,但是由static修饰的静态变量,我们称为“模块内全局变量”——它仅在当前.c文件内是可以“全局”访问的。   ...> 动态变量 C语言原生态支持的动态变量就只有局部变量了(Local Variable)。...理论上说,局部变量只在程序进入变量所在的花括号范围内时才从栈(stack)中进行分配,一旦程序出了花括号,它的声明就结束了——夏虫不可冰说的就是局部变量那可怜的一生…… 看着新近分配的局部变量,静态局部变量深深的吸了一口烟...刻舟求剑 C. 刻舟求剑 D....(C++、Java、C#原生态支持),而是开发人员通过程序逻辑所构造出的特殊变量类型。

2.1K20

C++11 变模板

1.概述 变模板(variadic template)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。...我们知道逗号表达式会按顺序执行逗号前面的表达式,返回最后一个表达式结果,比如: d = (a = b,c); 这个表达式会按顺序执行:b会先赋值给a,接着括号中的逗号表达式返回c的值,因此d将等于c。...,变类模板的参数包展开需要通过模板特化和继承方式去展开,展开方式比变函数模板要复杂。...我们可以用变模板来消除一些重复的代码以及实现一些高级功能,下面我们来看看可变模板的一些应用。...3.1消除重复代码 C++11之前如果要写一个泛化的工厂函数,这个工厂函数能接受任意类型的入,并且参数个数要能满足大部分的应用需求的话,我们不得不定义很多重复的模版定义,比如下面的代码: template

3.3K51

C语言笔记】变函数

提到变函数,我们的感觉是不是既熟悉又陌生?感觉熟悉是因为我们平时都在使用着,如我们常使用的printf()函数与scanf()函数就是典型的变函数。...因为printf()函数是变函数我们才可以根据我们的需要灵活地输出变量的值。...//给printf函数传入n个参数 我们可以根据需要给printf()函数传入n个参数,这就是变函数。 感觉陌生是因为我们没有试着创建变函数。...要创建变函数需要包含头文件stdarg.h,并且创建变函数应按照如下步骤进行: 【第一步】定义一个使用省略号的函数原型,如printf()与scanf()函数的原型为 int printf (const...2.0, 3.0, 4.0, 5.0, 6.0); printf("sum1 = %f\n", sum1); printf("sum2 = %f\n", sum2); return 0; } 变函数

1.1K40

C语言笔记】带宏定义(二)

我们可以使用命令gcc -E hello.c -o hello.i进行预处理,然后查看经过预处理得到的文件hello.i的内容,hello.i里的内容如下: ?...关于C程序的编译原理可查看往期笔记:【C语言笔记】C语言编译的过程关于windows系统下使用gcc编译器的方法可参考往期笔记:【C语言笔记】使用notepad++、MinGW来开发C程序 以上程序严谨的求平方的宏函数的定义如下...带宏到底有多重要,看看TI的一些官方例程就知道,其把很多算法使用带宏封装起来,用户就可以很方便的使用。 带宏—— clarke变换算法: ? 带宏—— PI调节器算法: ?...带宏与函数的区别 查看以上带宏,我们发现带宏似乎与函数似乎长得很像,它们之间有什么区别和联系呢?TI为什么要使用宏来对一些算法进行封装呢,难道使用函数来封装不可以吗?答案是可以的: ?...以上就是关于带宏的一些总结,如有错误,欢迎指出!

3K10

C语言-函数的定义、声明、传

前言 C语言里函数是非常重要的知识点,一个完整的C语言程序就是由主函数和各个子函数组成的,主函数调用子函数完成各个逻辑功能。 2. 函数在C语言里是什么概念?...C语言程序里除了main函数(主)之外的函数都叫子函数,都属于自定义函数。 3. 函数如何定义?如何编写一个函数? 函数定于分为几种情况:1. 有形 2.无形 3.有返回值 4....无返回值 /* [函数的名称](函数的形类型) { 函数体 } */ void func1(void) { } int func2(int a) { return 12;...函数如何传入形并接收返回值?...c=a+b; return c; //返回结果,并终止函数执行 } 6. return 语句作用 return 本身功能终止函数执行,顺带返回一个值给调用者。

1.5K10

C语言-指针作为函数形类型

前言 C语言函数里最常用就是指针传和返回地址,特别是字符串处理中,经常需要封装各种功能函数完成数据处理,并且C语言标准库里也提供了string.h 头文件,里面包含了很多字符串处理函数;这些函数的参数和返回值几乎都是指针类型...func(&a,&b); //func(100,200) printf("a=%d,b=%d\n",a,b); return 0; } void func(int *a,int *b) { int c;...c=*a; *a=*b; *b=c; } //return语句只能返回一个值 //如果函数想返回多个值,可以使用指针(形)实现。...注意: 从大到小或者小到大排序可以通过函数形区分。...='\0'){} return str-p-1; } /* 函数功能: 实现字符串排序.支持从小到大或者大到小 函数形: char *p 将要排序的字符串 char flag 选择排序方式

1.4K30

C语言笔记】带宏定义(一)

其中DSP与FPGA通过两个带宏进行数据交互(DSP与FPGA通过一块共享内存来实现数据交互,我这边的DSP只要往共享内存中写入数据即为往FPGA中写数据,往共享内存中读取数据就是读取FPGA发送过来的数据...FPGA_READ(data_in, base_addr, offset) \ ((data_in) = (((volatile uint32*)base_addr)[(offset)])) 带宏也称做宏函数...volatile在嵌入式编程中用得很多,如在Cortex-M3内核MCU的内核文件的C函数内嵌汇编中使用了大量的volatile关键字: ?...关于volatile关键字更多的介绍可查看往期分享: 【C语言笔记】volatile关键字 ((volatile uint32*)base_addr)[(offset)]的意思是相对于base_addr...带宏很重要,在一定程度上可以帮助我们防止出错,提高代码的可移植性和可读性等,应重点掌握。下一篇笔记我们将分享更多的带宏的笔记,欢迎阅读。----

1.3K40

C 语言】数组 ( 一维数组形退化 | 二维数组形退化 | 函数形等价关系 )

文章目录 一、一维数组形退化 二、二维数组形退化 三、数组形等价关系 一、一维数组形退化 ---- C 中将 一维数组 作为参数 , 传递到函数中 , 该 一维数组 会退化为 指针 ; 将 int...函数中处理 array 数组时 , 不知道该数组的元素个数 , 编译器只能确认 , 该参数是一个 int * 指针类型 ; 这样操作是为了提高 编译器 的效率 , 提高程序执行的效率 , 函数的 形...array[] void fun(int array[]) { } int *array void fun(int *array) { } 二、二维数组形退化 ---- 二维数组 作为 函数形 ,...也是 指针 , 则形为 二级指针 ; 实参为 二维数组 int array[10][20] , 等效的 形为 一级指针 int (*array)[20] ; 二维数组 的 数组的元素 是 一维数组...; 外围数组 ( 第二维 ) 退化为 指针 , 指针 指向的元素 是 一维数组 , 则形为 指向 一维数组 的指针 , 每个一维数组有 20 个元素 ;

2.7K10
领券