C基础
happygrilclh
物联网
展开
-
#error 用法
#error命令是C/C++语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息。#error [用户自定义的错误消息]注:上述语法成份中的方括号"[]"代表用户自定义的错误消息可以省略不写。举例1:#error Sorry,an error has occurred!举例2:#errorfreertos 源码例子:...原创 2019-09-03 10:19:07 · 4659 阅读 · 0 评论 -
C语言文件操作相关函数
C语言文件操作相关函数在实际应用中,我们往往需要对文件进行操作,下面我将介绍C语言的一些关于操作文件的函数。一、计算机文件 计算机文件是以计算机硬盘为载体存储在计算机上的信息集合,是存储在某种长期储存设备上的一段数据流。在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作,C语言规定该文件指针类型为FILE型。FILE文件指针结构体定义:typedef struct{ short level; ..转载 2020-10-15 22:52:26 · 575 阅读 · 0 评论 -
数字转字符串(待更新)
gg原创 2020-04-22 16:26:50 · 121 阅读 · 0 评论 -
warning: ‘gets’ is deprecated (declared at /usr/include/stdio.
5.c: In function ‘getinfo’:5.c:20:2: warning: ‘gets’ is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations] gets(temp.fname);警告:不建议使用gets函数。gets 已被弃用,因为它很危险,可能会导致缓冲区溢出。解决方案使用 fgets 代替: fgets(temp,sizeof(temp),stdin);..原创 2020-10-13 17:36:11 · 7118 阅读 · 0 评论 -
C 语言书单
紧要看的 c primer plus第六版 730 c语言深度剖析第二版pdf 165 C专家编程 291 C的陷阱和缺陷(高清版) 180 C和指针 448 从问题到程序 306 C语言的科学和艺术 498 程序员修炼之道pd...原创 2020-04-26 17:24:07 · 306 阅读 · 0 评论 -
使用sizeof时,编译提示incomplete type is not allowed的解决办法
程序:memset(BLUE_TX_BUF, 0, sizeof(BLUE_TX_BUF));编译时候出现的错误如下:..\Src\deviceJob.c(645): error: #70: incomplete type is not allowed发现声明BLUE_TX_BUF时,是这样的,extern uint8_t BLUE_TX_BUF[];原因:原来是用ex...原创 2020-03-09 19:07:11 · 6778 阅读 · 2 评论 -
区别:符号变量和常变量
符号变量:1.用 #define指令定义#define PRICE 352.符号变量只是用一个符号代替字符串,在预编译时把所有符号变量替换为所制定的字符串3.没有类型,在内存中并不存在以符号变量命名的存储单元常变量:1.用const定义const int b=45;2.具有变量的特征3.具有类型,在内存中存在以它命名的存储单元...原创 2020-03-26 14:39:58 · 262 阅读 · 0 评论 -
十六进制和十进制有符号数转换
有符号数,第一位做为符号,0为正数,1为负数。范围(-128 - 127)十六进制转有符号的十进制:方法1:对正数,后7位的值即为数值。对负数,128减后7位表示的数即为负号后的值如1110 1100(EC)为负数,后7位的值为6c,即108,128-108=20,此数为-201111 1111(FF)为负数,后7位的值为7f,即127,128-127=1,数为-10100 1110(CE)为正数,后7位的值为4e,即78,此数为 78方法2:对于正数,是原数(unsigned)。原创 2020-05-18 15:34:11 · 24119 阅读 · 1 评论 -
关于sprintf整合%d出错的问题
有些编译器用到sprintf函数整合%d类型的数据时候可能会出错例如错误的示例char *p[80]=0;memset(p,0,sizeof(p));sprintf((char *)p,"AT+CIPSTART=\"TCP\",\"%d.%d.%d.%d\",%d\r\n",210,209,82,119,8080);PrintString1(p);输出的值为 : AT+CIPS...转载 2020-02-28 15:22:37 · 1318 阅读 · 0 评论 -
d 和 04d 有什么区别?
C++中 %d 和 %04d 有什么区别?%d左对齐,输出变量的所有数字;%4d右对齐,宽度为4,左边填充空格,当变量的实际宽度大于4时,输出变量的所有数字;%04d与%4d的唯一区别就是左边填充0。比如,1.以%d,%4d,%04d,输出12时,结果是:12两个空格1200122.以%d,%4d,%04d,输出123时,结果是:123一个空格12301233.以%d,%...原创 2020-02-28 15:11:08 · 5971 阅读 · 1 评论 -
sprintf的格式化数据的时候,unsigned int 型%d打印为负数的解决办法
#include "string.h"#include "stdlib.h"void main(){ unsigned char num[10] = {0}; memset(num, 0, 10); sprintf(num,"%d",(unsigned char)(0xFF)); printf("%s\n",num); sprintf(num,"%d",(sign...原创 2020-04-21 14:24:13 · 5436 阅读 · 0 评论 -
\r\n换行
0x0D(asc码是13) 指的是“回车” \r是把光标置于本行行首0x0A(asc码是10) 指的是“换行” \n是把光标置于下一行的同一列0x0D + 0x0A 回车换行 \r\n把光标置于下一行行首...原创 2020-04-23 15:10:46 · 519 阅读 · 0 评论 -
周立功:嵌入式软件工程方法与实践丛书
《程序设计与数据结构》仅是《嵌入式软件工程方法与实践丛书》中的第一套第一本书,丛书共含四套:第一套《程序设计与数据结构》《面向接口的编程——基于AMteal&LPC824》《面向对象的分析与设计》第二套《面向接口的编程——基于AWorks&ARM9》(适用于各种ARM内核)《面向对象的分析与设计》第三套《面向接口的编程——基于Linux&...原创 2020-04-26 17:21:44 · 875 阅读 · 0 评论 -
形参是指针的函数,函数内部可以修改指针指向的数组值
#include "stdio.h"#define LEN 5int sum(int ar[], int n);int a[LEN] = {1,2,3,4,5};int t = 0;int sum(int ar[], int n){ int i; int total = 0; for(i=0;i<n;i++) { total += ar[i]++; //(*(ar+i))++ = *(ar+i)+1; } return total;}void mai.原创 2020-09-24 22:51:01 · 440 阅读 · 0 评论 -
共享的名字空间
两个不同作用域的同名变量不冲突;int a;void fun(void){ int a; //允许}void fun1(void){ int a; //允许}两个相同作用域的同名变量冲突。void fun(void){ int a; //int a; //不允许}名称空间是分类别的。在一个特定作用域内的结构标记、联合标记和枚举标记都共享相同的名称空间,该名称空间与普通变量使用的空间不同。这意味着在相同作用域中变量和标记的名称原创 2020-10-21 23:26:05 · 456 阅读 · 0 评论