![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 53
红尘-有梦
做一个简单的人,平和而执着,谦虚而无畏。
展开
-
C++静态库与动态库
转载:https://www.cnblogs.com/skynet/p/3372855.htmlC++静态库与动态库 2013-10-16 20:18 吴秦 阅读(147389) 评论(47) 编辑 收藏C++静态库与动态库这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写...转载 2021-02-20 09:12:53 · 150 阅读 · 1 评论 -
MD5文件校验
最近一个项目,需要做OTA远程升级,MCU从服务器下载升级文件到本地,进行程序升级。本来如果使用TPC/IP协议传输数据(升级文件)的话,可以不进行文件校验,因为TCP/IP数据传输的时候,为了保证数据的正确性,TCP/IP会进行数据校验。也就是说,我们通过TCP/IP协议接受的数据包,是不需要再次进行校验的。但是这个项目,使用了移远的串口-GPRS模块。MCU通过串口发送AT指...原创 2020-04-07 11:10:54 · 1861 阅读 · 0 评论 -
C语言文件打开模式浅析
转载于https://www.cnblogs.com/kangjianwei101/p/5220021.html在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式 只可以读 只可以写 读写兼备 文本模式 r w ...转载 2019-04-24 16:25:16 · 802 阅读 · 0 评论 -
c语言实现简单计算器功能
有段时间没怎么写代码了,今天用VS2010写了一个用C语言实现简单计算器功能的代码,用来找找感觉。功能本身很简单,网上例子很多,但因为是用标准终端输入和输出的,当输入错误数据时,会出现很多问题。所有添加了一个fflush函数,清除标准输入缓冲区,用来实现容错功能。标准输入缓冲区的意思是,当用户在终端输入时,当用户输入\n(回车键)时,用户之前的输入被一并送到终端的标准输入缓冲区...原创 2019-04-23 13:45:51 · 3858 阅读 · 0 评论 -
c语言小知识
1、为什么include头文件后,就可以调用文件中原创 2014-09-12 09:53:18 · 376 阅读 · 0 评论 -
如何编写更棒的代码:11个核心要点
作为一个合格的程序员,有太多的理由促使你去编写干净利落且可读性强的代码。最重要的是因为你编写的代码,将来会有很多人一次次地阅读。当你有一天回过头来看自己的代码时,你就会明白编写优雅的代码是多么的重要。另外,如果别人来阅读你编写的代码,你是否想知道别人看到那些烂代码无比抓狂的感受。因此,花多一点的时间去编写优雅的代码,将来说不定会给你节省更多的时间。那么,如何编写更棒的代码,下面是11条基本规则转载 2014-05-26 15:33:49 · 382 阅读 · 0 评论 -
C和指针笔记之一
1、static 凡是在代码块之外声明的变量和用static修饰的变量,总是存储于静态内存中,称为静态变量。静态变量在程序运行前被创建,在程序的整个执行期间始终存在。 static变量是静态变量,在程序运行前就已经被创建。如果某个static变量声明于函数内部,则程序调用该函数时会跳过该语句,不会执行它,因为该语句已经被优化掉。2、typedef ty原创 2013-05-06 11:03:34 · 601 阅读 · 0 评论 -
__attribute__ ((aligned (n), packed))
GNU C扩展的__attribute__ 机制被用来设置函数、变量、类型的属性,其用得较多的是处理字节对齐的问题。__attribute__ 的语法为:__attribute__ ((语法列表))参数aligned(number) [number为最小对齐的字节数]是用得较多的一个。另一个是参数packed 表示“使用最小对齐”方式,即对变量是字节对齐,对于域是位对齐。转载 2014-04-10 17:21:53 · 618 阅读 · 0 评论 -
程序的内存分配
一、程序的内存分配 一个由c/c++编译的程序占用的内存分为以下几个部分: 1、栈区(stack) 由编译器自动分配释放,存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意,它与数据结构中的堆是两回事,分配方式类似于链表。 3、全局区(静态区)(stati转载 2013-05-17 11:39:33 · 494 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的转载 2013-06-20 09:34:41 · 471 阅读 · 0 评论 -
c语言数据类型之整型提升
这是一道朗讯的笔试题(我把一些相关资料汇总了一下,希望大家能进来广泛的探讨,不甚感激!)#include int main(){ char ca; unsigned char ucb; unsigned short usc; ca = 128; ucb =128; usc = ca + ucb; pri转载 2013-06-17 14:39:25 · 798 阅读 · 0 评论 -
关于指针和数组
1、int a[10]; int *p; p = a;2、int *a[10]; int **p; p = a;3、int a[3][10]; int (*p)[10]; p = a;解析:1、int a[10]; 声明并定义了一个一维数组,数组名为a,a是一个指针常量,类型原创 2013-05-20 17:07:52 · 442 阅读 · 0 评论 -
c语言之冒泡排序
冒泡排序(Bubble sort)是一钟简单的排序算法。它重复的走访要排序的数列,每次比较2个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复的进行直到没有再需交换的数据,也就是说该数列已经排序完成。 冒泡排序是最常用也最简单的一种,其思想是:每次将数组前N个中最大(升序)或最小(降序)的数交换到数组的底部,每次数组大小N--,再进行如此操作,直到所有的数都已经排序。其原创 2013-05-28 09:59:18 · 469 阅读 · 0 评论 -
typedef用法
一.基本概念剖析 int* (*a[5])(int, char*); //#1void (*b[10]) (void (*)()); //#2 double(*)() (*pa)[9]; //#3 1.C语言中函数声明和数组声明。函数声明一般是这样:int fun(int, double);对应函数指针(pointer to funct转载 2013-05-10 14:04:30 · 493 阅读 · 0 评论 -
c语言enum
枚举类型在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型定义时列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能转载 2013-05-06 11:09:50 · 466 阅读 · 0 评论