c++、C相关
文章平均质量分 95
11
王蒟蒻
蒟蒻
展开
-
C字符串
定义//需要注意的是数组的末尾存储了空字符char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};char greeting[] = "Hello";char array[100] = {'a','b','c'}; //array[0] = 'a' array[10] = 0char aray[100] = "abcdef"; c...原创 2020-03-20 17:09:00 · 355 阅读 · 0 评论 -
keil提示:missing ';' before 'xxx'
然鹅并找不到哪里少了分号可能是alarm的问题,故将包含 alarm的头文件包含进来,解决问题一般这个报错不是缺少分号,是定义那行有些类型头文件识别不了,keil报这个错误。...原创 2019-12-24 11:40:55 · 11093 阅读 · 0 评论 -
C输出出现烫
简单说明出现“烫”的原因是由于字符数组中的某些数组元素没赋值。具体原因可以通过如下实例来进行说明:char a[10];a[0] = 'a';a[1] = 'b';a[2] = 'c';a[3] = 'd';printf("%s", a); // 输出结果就会出现很多“烫”,因为只对数组a中前四个元素进行了赋值,后面的元素未进行赋值,所以计算机默认就输出“烫”如果作如下修改就...原创 2019-12-15 09:35:39 · 6959 阅读 · 1 评论 -
C语言main参数
是什么简介:argc : main函数参数个数,当参数为void的时,argc=1,默认参数为可执行文件名argv : 指针数组,分别指向个参数字符串首地址,其中argv[0]指向默认参数实例int main(int argc, char* argv[]){ int i; for (i=0; i<argc; i++) printf("%d: %s\r\n", i+1, a...原创 2019-12-12 09:54:25 · 453 阅读 · 0 评论 -
宏定义 #define 和常量 const 的区别
类型和安全检查不同宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误;const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查编译器处理不同宏定义是一个"编译时"概念,在预处理阶段展开,不能对宏定义进行调试,生命周期结束与编译时期;const常量是一个"运行时"概念,在程序运行使用,类似于一个只读行数据存储方式不同宏定义是直接替换,不...原创 2019-12-05 14:41:12 · 427 阅读 · 0 评论 -
C 类型字节
原创 2019-11-22 16:27:10 · 824 阅读 · 0 评论 -
Called function should have prototype
被调用的函数应该有原型出现这个问题。检查1、函数有没有被定义2、函数有没有被声明3、头文件有没有对,条件编译有没有写对。例子:编译出现警告以图中蓝底显示为例该函数在r_cg_adc.c中定义该函数名在r_cg_adc.h中声明编译路径中有包含头文件最后发现问题是头文件条件编译标识符重复了。。。。。。...原创 2019-11-07 21:46:04 · 2368 阅读 · 1 评论 -
struct和 typedef struct
多了typedef 主要是为了使用结构体方便说明struct node {}//在申请node 的变量时,需要这样写struct node n;typedef struct node{}NODE; //在申请变量时就可以这样写NODE n;区别使用时,是否可以省去struct这个关键字。...原创 2019-11-05 11:12:47 · 302 阅读 · 0 评论 -
指针函数、函数指针
传送门总结指针函数本质是一个函数,其返回值为指针。函数指针本质是一个指针,其指向一个函数。指针函数就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。声明格式为:*类型标识符 函数名(参数表)int *fun(int x,int y);函数指针函数指针,其本质是一个指针变量,该指针指向这个函数。总结来说,函数指针就是指向函数的指针。声明格式:类型说明符 (*...转载 2019-11-04 15:59:12 · 363 阅读 · 0 评论 -
#ifdef #endif
条件编译当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句格式#ifdef 标识符 程序段1 #else 程序段2 #endif当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中else后面部分可以省略。//当LCD_ICON_3A有定义就可以用,当LCD_ICON_4A有定义就可以用//不然编译就自动忽略,...原创 2019-10-28 17:43:34 · 2820 阅读 · 0 评论 -
项目开发——volatile
Vay0721 博主总结的挺好的传送门做一些摘要解释volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。直接存取原始内存地址简单作用简单地说就是防止编译器对代码进行优化 XBYTE[2]=0x55; XB...转载 2019-10-28 17:14:54 · 259 阅读 · 0 评论 -
结构体后缀 :1
typedef struct{ u8 LCD_COM0 :1; u8 LCD_COM1 :1; u8 LCD_COM2 :1; u8 LCD_COM3 :1; u8 LCD_COM4 :1; u8 LCD_COM5 :1; u8 LCD_COM6 :1; u8 LCD_COM7 :1; }LcdCom;typedef u...原创 2019-10-25 14:14:24 · 4039 阅读 · 0 评论 -
变量默认初始化
如果定义变量时没有指定初始值,则变量被默认初始化。变量的默认值会受变量的类型,以及变量的位置的影响。 如果时内置类型的变量未被显示初始化,他的值由定义的位置决定。定义于任何函数体之外的变量被初始化为0,定义在函数体内部的变量将不被初始化,此时它的值时未定义的,如果试图拷贝或者以其他形式访问此类值将引发错误。每个类各自决定其初始化对象的方式,是否允许不经初始化就定义对象也由类自己决定,如果类...原创 2019-10-25 11:04:22 · 1052 阅读 · 0 评论 -
C 关键字static、extern
学习笔记,方便查看,侵删。static变量及其作用,C语言static变量详解在 C 语言中,static 关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用 static 关键字修饰变量时,我们称此变量为静态变量。静态变量的存储方式与全局变量一样,都是静态存储方式。但这里需要特别说明的是,静态变量属于静态存储方式,属于静态存储方式的变量却不一定就是静态变量。例如,全局变量虽然属于静态存...转载 2019-10-25 10:36:26 · 287 阅读 · 0 评论 -
变量重复包含问题
变量重复包含问题编译错误:(E) E0562300 E0562300:Duplicate symbol “_flag20ms” in “DefaultBuild\r_cg_main.obj” LCD.mtpj解释:头文件里面放的是关于函数,变量,类的“声明”。记着,是“声明”,不是“定义”。所以,最好不要在头文件里定义什么东西。如果进行了定义,在头文件的包含中,会多次进行变量的定义。...原创 2019-10-25 10:18:27 · 1848 阅读 · 1 评论 -
enum与typedef enum的用法
参考1参考2原创 2019-09-26 14:39:22 · 413 阅读 · 0 评论 -
黑马程序员——C++笔记
习题习题描述问题集新手村:cout << "a = " << a << endl;标识符 第一个字符必须为字母或下划线cout << (int)ch << endl; //查看字符a对应的ASCII码sizeof( 数据类型 / 变量)float f1 = 3.14f;//注意这里加了个f 这样加的好处是之后不用再进行转换,一步到位//ch = “abcde”; //错误,不可以用双引号//ch =原创 2021-04-01 21:23:24 · 2503 阅读 · 1 评论 -
priority_queue的使用
priority_queue本质是一个堆。头文件是#include关于模板参数 模板申明带3个参数:priority_queue<Type, Container, Functional>Type 为数据类型Container为保存数据的容器:必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector。Function...原创 2019-03-04 16:30:54 · 613 阅读 · 0 评论 -
c++中map与unordered_map的区别
c++中map与unordered_map的区别头文件map: #include < map >unordered_map: #include < unordered_map >内部实现机理map:map内部实现了一个红黑树,该结构具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素,因此,对于map进行的查找,删除...转载 2019-02-20 11:09:45 · 844 阅读 · 0 评论 -
c++ map用法
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识...原创 2019-02-20 11:01:29 · 434 阅读 · 0 评论 -
c++ set用法
set的特性是,所有元素都会根据元素的键值自动排序,set的元素不像map那样可以同时拥有实值(value)和键值(key),set元素的键值就是实值,实值就是键值。set不允许两个元素有相同的键值。set的各成员函数列表如下:begin()–返回指向第一个元素的迭代器clear()–清除所有元素count()–返回某个值元素的个数empty()–如果集合为空,返回tru...原创 2019-02-20 10:33:38 · 251 阅读 · 0 评论 -
c++ primer——cin出错讲解
cin.sync()的功能是清空缓冲区,而cin.ignore()虽然也是删除缓冲区中数据的作用,但其对缓冲区中的删除数据控制的较精确,cin.sync()并不是在所有的编译器中都可以被使用有时候你只想取缓冲区的一部分,而舍弃另一部分,这是就可以使用cin.ignore(),其使用方法是:cin.ignore(int intExp, char chExp);其中intExp 是一个整型表达式...原创 2018-11-02 08:21:24 · 414 阅读 · 0 评论 -
c++ primer 随机数讲解
原理C++产生随机数随机数rand函数产生的是伪随机数,也就是说它不是一个真实的随机数。它的原理大概如下:如果约定:a1=f(seed),an+1=f(an)那你可以得到一个序列:a1,a2,a3…an,那么要制作一个伪随机函数rand,只需要让它每调用一次就返回序列的下一个元素就行。就相当于第1次调用rand返回a1,第2次返回a2,…,第n次返回an,这样每次调rand都能拿到一个不...原创 2018-11-01 16:08:17 · 484 阅读 · 0 评论