C语言之函数的声明
函数的声明
1.函数只能定义在函数外,不能定义在函数内
2.函数不允许重名,C语言中函数没有重载
3.函数只要一经定义,就可以在任意函数中调用
注意:如果函数定义在它调用之后,那么必须在调用之前,先声明这个函数
声明的语法:
返回值类型 函数名(参数列表);
tips:声明函数其实只要复制函数头,打个分号就可以了
再注意: 1、函数定义的时候函数头是什么样子,那么声明的时候也必须是这个样子的
2、如果有参数的函数,声明的时候可以省略形参名
3、在Mac下,如果返回值类型是int的话,可以直接调用不声明(不推荐)
4、函数的声明位置可以放在函数内,也可以放在函数外,但是一定要在调用函数之前
5、函数的声明可以写N多个
tips:代码例子如下
#include <stdio.h>
void test();
void test2(int); //类型不可以省略,但是形参名可以省略
void test3(int,int);
int test4();
int main(int argc, const char * argv[]) {
test();
test2(20);
test3(10, 20);
test4(); //Mac下可以调用,只是返回值是int的时候,可以不声明直接调用
return 0;
}
int test4(){
printf("test4被调用了\n");
return 5;
}
char test5(){
printf("test5被调用了\n");
return 'a';
}
void test(){
printf("哈哈哈哈\n");
}
void test2(int num){
printf("num=%d\n",num);
}
void test3(int num1,int num2){
printf("num1+num2=%d\n",num1+num2);
}
C语言之函数的声明的更多相关文章
- C语言,函数的声明与定义
函数声明与定义 变量: 在讲变量前,先讲一下变量的声明和定义这两个概念. 声明一个变量,意味着向编译器描述变量的类型,但不为变量分配存储空间. 定义一个变量,意味着在声明变量的同时还要为变量分配存储空 ...
- C语言中函数声明实现的位置
在学习C语言的时候我遇到了这么个事情,因为之前先学习的C#,在C#编译器中,函数的声明位置不会影响编译的结果,但是在C语言中却发生了错误 先看一段代码: #include <stdio.h> ...
- C语言复杂的函数指针声明
复习C语言ING,发现复杂的函数指针声明看不懂,百度半天终于略知一二. 讲的比较详细的一篇blog: http://blog.csdn.net/megaboy/article/details/4827 ...
- C语言的函数声明,定义,调用以及exit退出
#include <stdio.h> #include <stdlib.h> void singing(); int main() { singing(); system(&q ...
- C语言中函数声明、形参、实参
函数原型: 原型prototype是函数的声明:描述了函数的返回值与参数: 函数原型说明了两点: 1.该函数的返回值 2.该函数的参数及其类型 ++++++++++++++++++++++++++++ ...
- C语言pow函数编写
C语言pow函数编写 #include<stdio.h> double chaoba(double f,double q); //声明自定义函数 void main(void) { dou ...
- C语言-自定义函数
C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...
- 黑马程序员——C语言基础 函数
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)函数的定义 1> 任何一个C语言程序都是由一个或者多个程序段( ...
- C语言Scanf函数
C语言的scanf函数 一.变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间 ...
随机推荐
- 在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样?
原文:在标记的HREF属性中javascript:alert(this.innerHTML)会怎么样? <a href="javascript:alert(this.innerHTML ...
- 数据结构队列的java实现,包括线性和链式两种方式
实现的思路为: 采用泛型的方式,首先定义了一个Queue的接口,然后通过实现该接口实现了线性和链式的两种形式的队列: 接口代码如下: package com.peter.java.dsa.interf ...
- Effective C++(19) 设计class犹如设计type
问题聚焦: 这一节不涉及代码,但是我们需要明确的一点是,思想比代码要重要得多. 设计优秀的classes是一项艰巨的工作,就像设计好的types一样. 我们应该带着和“语言设计 ...
- DIP And DI
依赖倒置(DIP)与依赖注入(DI) 依赖倒置原则(Dependency Inversion Principle)为我们提供了降低模块间耦合度的一种思路,依赖注入(Dependency Injec ...
- 教你用Perl 实现Base64编码
在用脚本后台发送邮件时,需要将html的内容转换成Base64编码的形式,这样邮件客户端会自动对Base64编码的内容进行解码,还原成原来的内容. Base64.pl: #!/usr/bin/perl ...
- Backbone.js的技巧和模式
Backbone.js的技巧和模式 Backbone.js的技巧和模式 本文由白牙根据Phillip Whisenhunt的<Backbone.js Tips And Patterns> ...
- MySQL关联查询总结
MySQL中经常使用关联查询,有机会总结下: 1 left join(左联查询): 返回包括左表中的所有记录和右表中联接字段相等的记录 例:select * from a left join b on ...
- Oracle中忘记sys和System密码的办法
打开cmd:sqlplus/nolog connect/as sysdba; alter user sys identified by ***; alter user system identifie ...
- Erasure Coding in WAS简单译文
原文:<Erasure Coding in Windows Azure Storage.pdf>,地址:https://www.usenix.org/system/files/confer ...
- AOP编程和ASP.NET MVC
AOP编程和ASP.NET MVC AOP(Aspect oriented programming)面向切面编程.说成切面不容易理解,代码哪里有切面?又不是三维物体.概念不管,我们从其思想来理解这个名 ...