【C语言】C语言函数
目录:
1. 【函数注意点】
2. 【函数目的】
3. 【函数格式】
4. 【函数定义前需明确的条件】
5. 【函数的形参、实参】
6. 【函数返回值注意点】
7. 【为什么要return】
8. 【C语言上手常见问题】
9. 【外部函数和内部函数】
1. 函数注意点
· 每条语句后面必须有;号
· 除 “ ” 号内引用起来的地方,其它任何地方都不能出现中文
· main函数中的return 0;可以写,也可不写
· main函数前的int可以写也可以不写
· main函数后面()号不可省略
· 同一个程序中只有一个main函数(main函数是程序入口)
2. 函数目的
将一个常用的功能封装起来,方便以后调用,使代码更加整洁,增加可读性。
3. 函数格式
格式: 例:定义一个返回值为 int 类型的 test 函数,包含 a,b 2个 int 类型的形参,返回 0 。
返回值类型 函数名 (形参列表) void test (int a, int b)
{ {
函数体(代码块) return 0;
} }
4. 函数定义前需明确的条件
· 有意义的名称(方便查阅、交流,减少沟通成本)
· 是否有形参?是否有返回值?它们的数据类型是什么?
5. 函数的形参、实参
形参:定义函数时函数名后面()号中的参数。
实参:调用函数时传入的参数。
注:
· 形参个数必须与实参一致。
· 函数体内部不能定义与形参一样名称的变量
· 函数内部的形参值不会影响到外部的实参值
· 一个函数可以没有形参或有无数个形参
6. 函数返回值注意点
· void 代表没有返回值
· 如果没有明确返回值类型,默认为 int 类型
· 就算明确了返回值类型,也可以不返回任何值
7. 为什么要return
告诉系统退出返回0为正常,除0以外为非正常退出。
8. C语言上手常见问题
· 函数是否可嵌套使用? 否
· 函数是否能重复声明? 是
· 函数是否能重复定义? 否
· 为什么能重复声明而不能重复定义函数?
C语言中声明函数是为了告诉系统,我们的代码中包含了声明的函数。而定义函数是函数的具体实现。重复定义的话系统会将其看成不同的函数,当函数名与返回值又相同,编译时便会报错。如果只声明,没有实现,则编译时不会报错,但链接时不会通过。
· 为什么编译时无报错,但运行时报错?
因为编译时只检测语法是否合理。如果合理,编译器会帮我们队程序进行链接操作,所以出现这种情况,肯定是代码不规范或逻辑错误导致。
9. 外部函数和内部函数
1.外部函数
定义的函数能被本文件和其它文件访问(默认)。
注:不允许有同名的外部函数。
2.内部函数
定义的函数只能被本文件访问,其它文件不能访问。
注:允许不同文件中有同名的内部函数。
【C语言】C语言函数的更多相关文章
- Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针
Atitit java方法引用(Method References) 与c#委托与脚本语言js的函数指针 1.1. java方法引用(Method References) 与c#委托与脚本语言js ...
- C语言字符串匹配函数
C语言字符串匹配函数,保存有需要时可以用: #include <stdio.h> #include <stdlib.h> #include <string.h> # ...
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- [转]SQLITE3 C语言接口 API 函数简介
SQLITE3 C语言接口 API 函数简介 说明:本说明文档属作者从接触 SQLite 开始认识的 API 函数的使用方法, 由本人翻译, 不断更新. /* 2012-05-25 */ int sq ...
- (转)PHP的语言结构和函数的区别
相信大家经常看到对比一些PHP应用中,说用isset() 替换 strlen(),isset比strlen执行速度快等. 例子: if ( isset($user) ) { //do some thi ...
- Java之--Java语言基础组成—函数
Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...
- C语言中的函数
C语言中的函数 目录 概述——对函数的理解 C语言中函数的定义和声明 函数允许的参数类型 函数允许的返回类型 递归 概述 由于有些代码段在编写程序的时候经常会用到,此时我们为了减少代码文件的长度和增加 ...
- C语言文件操作函数
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * str ...
- 想精度高,可以考虑用c语言中的函数gettimeofday
大家好: 在 win32 + bcb 时, 有个 GetTickCount() 返回第统启动到现在的 tick, 单位 ms.请问在 Linux + qt5 怎样实现呢? 如果用 QDateTime ...
- 函数指针玩得不熟,就不要自称为C语言高手(函数指针是解耦对象关系的最佳利器,还有signal)
记得刚开始工作时,一位高手告诉我说,longjmp和setjmp玩得不熟,就不要自称为C语言高手.当时我半信半疑,为了让自己向高手方向迈进,还是花了一点时间去学习longjmp和setjmp的用法.后 ...
随机推荐
- 【JDK源码分析】String的存储区与不可变性
// ... literals are interned by the compiler // and thus refer to the same object String s1 = " ...
- 也说说TIME_WAIT状态
也说说TIME_WAIT状态 一个朋友问到,自己用go写了一个简单的HTTP服务端程序,为什么压测的时候服务端会出现一段时间的TIME_WAIT超高的情况,导致压测的效果不好呢? 记得老王有两篇文章专 ...
- OpenJudge1700:八皇后问题 //不属于基本法的基本玩意
1700:八皇后问题//搜索 总时间限制: 10000ms 内存限制: 65536kB 描述 在国际象棋棋盘上放置八个皇后,要求每两个皇后之间不能直接吃掉对方. 输入 无输入. 输出 按给定顺序和 ...
- VS自动生成的packages.config配置文件有什么用?
通过nuget管理安装了程序包之后,Visual Studio会自动生成一个关于这些程序包版本的配置文件,删除或者保留它对程序不会造成什么影响.
- Spring @Transactional propagation 各个属性值的含义
REQUIRED:业务方法需要在一个容器里运行.如果方法运行时,已经处在一个事务中,那么加入到这个事务,否则自己新建一个新的事务. NOT_SUPPORTED:声明方法不需要事务.如果方法没有关联到一 ...
- C#三种判断字符是否为汉字的方法
判断一个字符是不是汉字通常有三种方法,第一种用 ASCII 码判断,第二种用汉字的 UNICODE 编码范围判 断,第三种用正则表达式判断,以下是具体方法. 1.用ASCII码判断 在 ASCII码表 ...
- QTableWidget 使用及美化_QtableWidget_QtableView滚动条宽度及样式
//创建及属性设置m_tableWidget = new QTableWidget(this);m_tableWidget->setRowCount(10);m_tableWidget-&g ...
- 【Java每日一题】20161025
20161024问题解析请点击今日问题下方的"[Java每日一题]20161025"查看 package Oct2016; import static java.lang.Math ...
- SQL简单语句总结习题
创建一个表记员工个人信息: --创建一个表 create table plspl_company_info( empno ) not null, ename ) not null, job ), ma ...
- MUI(1)
今天小编用HBuilder+MUI开发移动APP,不用Android原生也不用IOS原生,仅仅用HTML5+MUI.小编也是初学者所以如有不准确的地方望大家指出帮助小编改正,同时也可以促进大家的深入学 ...