从入门到放弃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

相关文章

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

史上最全MybatisPlus从入门到精通

《史上最全MybatisPlus从入门到精通》MyBatis-Plus是MyBatis增强工具,简化开发并提升效率,支持自动映射表名/字段与实体类,提供条件构造器、多种查询方式(等值/范围/模糊/分页... 目录1.简介2.基础篇2.1.通用mapper接口操作2.2.通用service接口操作3.进阶篇3

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.