- Linux操作系统提供 了三个用于存储空间(进程的堆空间)动态分配的函数和一个用于释放内存空间的函数。 malloc函数:给进程分配指定字节数的存储区,此存储中的初始值不为0,因此申请后要记得初始化一下。calloc函数:有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小,该空间的每一位都将被初始化为0。realloc函数:用于更... Linux操作系统提供 了三个用于存储空间(进程的堆空间)动态分配的函数和一个用于释放内存空间的函数。 malloc函数:给进程分配指定字节数的存储区,此存储中的初始值不为0,因此申请后要记得初始化一下。calloc函数:有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小,该空间的每一位都将被初始化为0。realloc函数:用于更...
- 使用结构体的好处 假设有一个函数: void getStudentProfile(const char* name,int age,int height,int weight,const char *hobby,const char* good,const char* school){} 每次调用时都要传递姓名、年龄、身高、体重、爱好、特长、学校名称等信息。调用时... 使用结构体的好处 假设有一个函数: void getStudentProfile(const char* name,int age,int height,int weight,const char *hobby,const char* good,const char* school){} 每次调用时都要传递姓名、年龄、身高、体重、爱好、特长、学校名称等信息。调用时...
- C语言是靠函数来实现模块化的。使用函数,就不用将所有功能都写在main函数里。程序的结构也清晰,易读,易维护。 模块化设计 1. 各个函数实现各自的功能。最后利用main函数来调用各种函数,从而实现各种功能。 2. 一个源程序文件是由一个或者多个程序模块组成,每个模块负责一个功能。 3. C程序总是从main函数开始执行的,main函数调用其他函数,系统调用main函... C语言是靠函数来实现模块化的。使用函数,就不用将所有功能都写在main函数里。程序的结构也清晰,易读,易维护。 模块化设计 1. 各个函数实现各自的功能。最后利用main函数来调用各种函数,从而实现各种功能。 2. 一个源程序文件是由一个或者多个程序模块组成,每个模块负责一个功能。 3. C程序总是从main函数开始执行的,main函数调用其他函数,系统调用main函...
- 如果一个变量有几种可能的值,则可以定义为枚举类型,就是把各种存在的值一一的列举出来。枚举在C/C++/c#中,是一个被命名的整型常数的集合。它可以让数据更简洁,更易读。 接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名: #define MON 1 #define TUE 2 #define WED... 如果一个变量有几种可能的值,则可以定义为枚举类型,就是把各种存在的值一一的列举出来。枚举在C/C++/c#中,是一个被命名的整型常数的集合。它可以让数据更简洁,更易读。 接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名: #define MON 1 #define TUE 2 #define WED...
- 同一类事物,不同的数据类型,可以采用联合体来表示,如描述“量”这样东西,即可以用个数,也可以用重量,还可以用容积,这些都是量,如果用结构体来描述这三样东西,就会在存储器占用更多空间。解决办法就是用联合体,定义一个叫“量”的数据类型,然后根据特定数据决定要保存个数,重量还是容积,联合体的定义如下: union quantity{ short count; float w... 同一类事物,不同的数据类型,可以采用联合体来表示,如描述“量”这样东西,即可以用个数,也可以用重量,还可以用容积,这些都是量,如果用结构体来描述这三样东西,就会在存储器占用更多空间。解决办法就是用联合体,定义一个叫“量”的数据类型,然后根据特定数据决定要保存个数,重量还是容积,联合体的定义如下: union quantity{ short count; float w...
- C99标准定义了long long类型,在64位机上保证至少64位。 一个全局变量或函数可以有多处“声明”,但**“定义”只允许出现一次**。定义是分配空间并赋初值的声明。最好的做法是在某个相关的.c 文件中定义,然后在头文件.h中进行外部声明,在需要使用的时候只要包含对应的头文件即可。定义变量的.c文件也应该包含该头文件,以便编译器检查定义和声明的一致性。此条规则,提... C99标准定义了long long类型,在64位机上保证至少64位。 一个全局变量或函数可以有多处“声明”,但**“定义”只允许出现一次**。定义是分配空间并赋初值的声明。最好的做法是在某个相关的.c 文件中定义,然后在头文件.h中进行外部声明,在需要使用的时候只要包含对应的头文件即可。定义变量的.c文件也应该包含该头文件,以便编译器检查定义和声明的一致性。此条规则,提...
- open 是系统调用返回的是文件句柄,文件的句柄是文件在文件描述符表里的索引,fopen是C的库函数,返回的是一个指向文件结构的指针。 open属于低级IO,fopen是高级IO。open返回一个文件描述符(用户程序区的),fopen返回一个文件指针。open无缓冲,fopen有缓冲。open与 read, write 等配合使用, fopen与 fread,open... open 是系统调用返回的是文件句柄,文件的句柄是文件在文件描述符表里的索引,fopen是C的库函数,返回的是一个指向文件结构的指针。 open属于低级IO,fopen是高级IO。open返回一个文件描述符(用户程序区的),fopen返回一个文件指针。open无缓冲,fopen有缓冲。open与 read, write 等配合使用, fopen与 fread,open...
- 互联网中大部分的底层网络代码都是用C语言写的。网络程序通常由两部分程序组成:服务器和客户端。 服务器将同时与多个客户端通信。客户端与服务器之间将展开一段结构化对话,叫做协议。 互联网使用了各种协议,一部分是低层协议,另一部分是高层协议。 低层协议有IP,它用来控制二进制的0和1在互联网中的发送方式。 高层协议有HTTP,它用来控制浏览器与网络服务器的对话。 协议通... 互联网中大部分的底层网络代码都是用C语言写的。网络程序通常由两部分程序组成:服务器和客户端。 服务器将同时与多个客户端通信。客户端与服务器之间将展开一段结构化对话,叫做协议。 互联网使用了各种协议,一部分是低层协议,另一部分是高层协议。 低层协议有IP,它用来控制二进制的0和1在互联网中的发送方式。 高层协议有HTTP,它用来控制浏览器与网络服务器的对话。 协议通...
- getopt()函数声明: int getopt(int argc, char * const argv[],const char *optstring); 1 使用getopt()函数要引用头文件unistd.h。 getopt()函数作用: 解析命令行参数中的选项,选项是以’-'开头的字符。 与getopt相关的重要的全局变量 extern char* ... getopt()函数声明: int getopt(int argc, char * const argv[],const char *optstring); 1 使用getopt()函数要引用头文件unistd.h。 getopt()函数作用: 解析命令行参数中的选项,选项是以’-'开头的字符。 与getopt相关的重要的全局变量 extern char* ...
- 1.编译:gcc xxx.c -o xxx2.生成可调试文件:gcc -g xxx.c -o xxx3.调试程序:gdb xxx4.执行程序: start :从程序第一步开始执行run:直接运行程序到结束或者断点处 5.设置断点:break line(行数)或函数名或者条件表达式 break 6:在第6行设置断点break Swap :在Swap函数入口设置断点brea... 1.编译:gcc xxx.c -o xxx2.生成可调试文件:gcc -g xxx.c -o xxx3.调试程序:gdb xxx4.执行程序: start :从程序第一步开始执行run:直接运行程序到结束或者断点处 5.设置断点:break line(行数)或函数名或者条件表达式 break 6:在第6行设置断点break Swap :在Swap函数入口设置断点brea...
- 在上一篇文章C语言——网络与套接字介绍了网络服务器的相关知识。现在我们来看看网络客户端的相关知识。 我们来写一个HTTP协议的网络客户端。说到HTTP协议,其实就像我们在C语言——网络与套接字自定义的IAHP协议一样。**协议是一段结构化对话。**网络客户端和服务器必须按照结构化的对话来进行通信。 打开telnet看看是如何下载网页的。 ~$ telnet www... 在上一篇文章C语言——网络与套接字介绍了网络服务器的相关知识。现在我们来看看网络客户端的相关知识。 我们来写一个HTTP协议的网络客户端。说到HTTP协议,其实就像我们在C语言——网络与套接字自定义的IAHP协议一样。**协议是一段结构化对话。**网络客户端和服务器必须按照结构化的对话来进行通信。 打开telnet看看是如何下载网页的。 ~$ telnet www...
- 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体用关键字 struct来声明。 定义结构体类型变量 基本形式格式: struct 结构体名{ 成员表列; } 变量表列; 123 具体有四... 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体用关键字 struct来声明。 定义结构体类型变量 基本形式格式: struct 结构体名{ 成员表列; } 变量表列; 123 具体有四...
- 条件编译 #include <stdio.h> #ifdef HELLO char *c = "hello world";//如果HELLO这个宏存在,包含这段代码 #else char *c = "No zuo,no die"; //否则包这段代码 #endif int main(){ printf("%s\n",c); return 0; } 12345... 条件编译 #include <stdio.h> #ifdef HELLO char *c = "hello world";//如果HELLO这个宏存在,包含这段代码 #else char *c = "No zuo,no die"; //否则包这段代码 #endif int main(){ printf("%s\n",c); return 0; } 12345...
- 1.Allegro Allegro是一个跨平台库。它致力于视频游戏和多媒体编程方面。它可以处理常见的,低层级的任务,如创建窗口、接受用户输入、加载数据 、画图、播放音频等等。提醒:Allegro 不是游戏引擎。 2.gdb GDB 是GNU项目使用的调试器。当运行gdb时,它可以让你知道另外一个程序里面正在发生什么事情或者在它崩溃时,它内部具体发生了什么。 GDB主... 1.Allegro Allegro是一个跨平台库。它致力于视频游戏和多媒体编程方面。它可以处理常见的,低层级的任务,如创建窗口、接受用户输入、加载数据 、画图、播放音频等等。提醒:Allegro 不是游戏引擎。 2.gdb GDB 是GNU项目使用的调试器。当运行gdb时,它可以让你知道另外一个程序里面正在发生什么事情或者在它崩溃时,它内部具体发生了什么。 GDB主...
- 假如你的程序一边从网络读取数据,一边向网络发送数据。如何在代码中同时执行几个不同的任务?根据前面的知识,我们知道可以通过创建多几个子进程来做这些事。但是创建进程很花时间,而且不同子进程之间共享数据很不方便。这时我们需要线程来帮我们解决这个问题。 如何创建线程呢? 我们有很多线程库可以用,其中最流行的就是POSIX线程库,也叫pthread 。可以在类Unix系统上使... 假如你的程序一边从网络读取数据,一边向网络发送数据。如何在代码中同时执行几个不同的任务?根据前面的知识,我们知道可以通过创建多几个子进程来做这些事。但是创建进程很花时间,而且不同子进程之间共享数据很不方便。这时我们需要线程来帮我们解决这个问题。 如何创建线程呢? 我们有很多线程库可以用,其中最流行的就是POSIX线程库,也叫pthread 。可以在类Unix系统上使...
上滑加载中
推荐直播
-
华为云软件开发生产线(CodeArts)1月&2月新特性解读
2025/03/18 周二 19:00-20:00
阿星 华为云高级产品经理
不知道产品的最新特性?没法和产品团队建立直接的沟通?本期直播产品经理将为您解读华为云软件开发生产线1月&2月发布的新特性,并在直播过程中为您答疑解惑。
回顾中 -
基于能力图谱的openGauss项目闯关
2025/03/20 周四 19:00-20:30
华为开发者布道师
想成为顶级数据库开发者吗?本次直播将从银行业务系统的数据库设计出发,带你逐步掌握openGauss的建库表、数据封装、密态技术、性能调优及AI应用。通过实战案例,全面展示openGauss的强大功能,助你提升技能,为未来的职业发展打下坚实基础。立即报名,开启你的数据库进阶之旅!
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中
热门标签