从入门到放弃C语言-瞎倒腾(2)

2023-11-11 06:58
文章标签 语言 入门 放弃 倒腾

本文主要是介绍从入门到放弃C语言-瞎倒腾(2),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

请扫码加公众号,周三周六定时更新大笑


       上一次简单的介绍了一下C语言的代码结构,总结一下可以说C语言主要由库包含,main函数以及在函数中的语句组成。

       一个源代码文件仅仅由库包含和main函数组成是最简单的结构了,为了实现更加复杂的功能,我们需要往这个结构中加入新的东西。

 

       增加新的东西自然是为了增加代码的功能,把所有的功能都放入main自然也是一种方法。

       但是,不够优雅,不够装逼。

      比如

       intmain()

       {

              aLotOfStatement    //nice! have done some fantastic work

             

              aLotOfStatement     // just so so

 

 

              aLotOfStatement        //wtf, what am I writing

 

 

              aLotOfStatement     // I want to kill myself……..

}

 

       其实,生活不仅有眼前的装逼,还有你写完几百行以后的……

       如果你当真把几百行全部写在了main函数,刚开始你和别人都能看得懂你的代码。慢慢得,看得懂的只有你和上帝。到了最后,看得懂你代码的,大概只有上帝了……

 

       这时候,我们迫切需要一种能够让你优雅装逼的利器来解决这种问题,嗯,虽然不是老司机,我推荐使用函数(function)。

       函数呢,体现的是自顶向下设计思路,这个东西在面相过程编程中是极其重要的,日后详细讨论函数的时候在说。

 

       简单来说呢,我们写函数的目的就是把main函数那么多的语句通过拆分,形成多个独立的功能个体,来完成一些小任务。当程序进入内存以后,从main函数开始执行,main函数不断调用别的函数来完成一些任务,并通过返回值来存储关键数据用于接下来的计算。

 

 

       废话不多说,看一下如何编写函数。

 

       下面的小程序完成小学的加法和乘法。

      

       #include<stdio.h>

       #include<stdlib.h>

 

       int  add(int a,int b);

       intmul(int a,int b);

 

       intmain()

       {

              intc,d,e,f;

              c=1;d=2;

 

              e=add(c,d);

              f=mul(c,d);

       }

      

       intadd(int a,int b)

       {

              returna+b;

       }

 

       intmul(int a,int b)

       {

              returna*b;

       }

 

执行完程序后,e=1+2=3,f=1*2=2

 

在上面的程序中,库包含以后跟着的两句叫做函数原型。(  int add(int a,int b);  )。

普遍的语法结构是这样的(按照英文翻译理解)

returnType    functionNmae(argumentTypeargument1, ……… argumentType arumentn);

函数原型呢也可以叫函数签名(function signature)。它呢,并没有说明这个函数是干嘛的,只是说程序中有个函数是functionName,有一天她会披着金甲圣衣,驾着七彩,,,,,

 

不不不。只是说程序中有个函数,叫functionName,它会完成一定的功能。当然呢,只是说说将会有这个函数。

 

 

在main函数以后跟着的其实就是前面两个函数签名所说的函数。

在我们把它能实现的功能放在了花括号中间,然后函数签名所指的函数也就有了真正实体。

这个能够完成某一功能的实体叫做函数定义。

当有了函数定义后,一个函数的创建工作也就在代码中完成了。

 

当有了一个个自己定义的函数以后,程序的功能会大大的增强,更好的是,main函数要做的事情被各个函数给分配走了,main函数的代码长度会大大减少,这样也就能够在编写代码的时候能够优雅的装逼了,因为功能被分散的以后,程序哪里出问题了就直接修改相关函数即可,而并不需要在整个main函数里面找我错哪里了,我究竟错哪里了!!

这样,也就能够优雅的装逼啦。

 

最后提一下,前面的代码结构中,我们把的结构是

 

#include <***>  //库包含

 

//函数签名

 

int main()

{

}   //main函数

 

//各种函数定义

 

int aFuntion()

{

}

…….

 

其实,还有一种结构是这样的

 

#include<****>//库包含

 

//各种函数定义

 

int aFunction()

{}

int bFuntion()

{}

 

//main函数

int main()

{

}

这一种结构与前面的差别在于函数签名没了,我见过很多人这样编写程序,说实话,我推荐前面一种,因为如果要了解一个程序必定是从main开始来自上向下了解的,把main函数放在前面能够直接体现程序的功能,自定义函数放在main后面更体现了他们辅助main完成功能的地位。


这篇关于从入门到放弃C语言-瞎倒腾(2)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/388310

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

C语言字符函数和字符串函数示例详解

《C语言字符函数和字符串函数示例详解》本文详细介绍了C语言中字符分类函数、字符转换函数及字符串操作函数的使用方法,并通过示例代码展示了如何实现这些功能,通过这些内容,读者可以深入理解并掌握C语言中的字... 目录一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2st

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

C语言中的浮点数存储详解

《C语言中的浮点数存储详解》:本文主要介绍C语言中的浮点数存储详解,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、首先明确一个概念2、接下来,讲解C语言中浮点型数存储的规则2.1、可以将上述公式分为两部分来看2.2、问:十进制小数0.5该如何存储?2.3 浮点

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、