C/C++
文章平均质量分 82
Somnus陳
有梦想谁都了不起...
展开
-
为什么C语言执行效率高,运行快?
为什么都说C语言执行效率高,高在哪里?原创 2022-11-04 22:02:10 · 4310 阅读 · 7 评论 -
二维数组与二级指针
二维数组是数组的数组,二级指针是指针的指针,那么他们有哪些相关联的地方呢?原创 2022-10-23 18:43:37 · 632 阅读 · 0 评论 -
C语言结构体struct详解
在实际的开发过程中,一组数据往往具有不同的数据类型,此时数组是不能够满足需求了。因为数组中各元素的类型必须是一致的。为了解决这个需求,C中给出了另一种数据类型-结构体,每一个成员可以是任意一种数据类型...原创 2022-07-25 22:12:40 · 3413 阅读 · 0 评论 -
不识烫烫烫屯屯屯,还说是攻城狮?
作为一名码农,想必都知道Hello World,什么,你竟然不知道?哦,那你可能不是码农,抬走,下一个。言归正传,在码农界,存在一首打油诗,我带大家一道欣赏。手持两把锟斤拷,口中疾呼烫烫烫。脚踏千朵屯屯屯,笑看万物锘锘锘。如果非要给一个诗名,我希望是“码到成功”。在此说一下“烫烫烫”以及“屯屯屯”的梗以及原理。在Visual Studio中,未初始化的栈空间默认值是0xcc,未初始化的堆空间默认值是0xcd。而在GB2312编码中,0xCCCC对应的中文是“烫”。0xCD原创 2021-06-26 11:20:54 · 623 阅读 · 0 评论 -
C库函数-printf()
printf为C语言中的库函数,需要包含头文件stdio.h,能够发送格式化输出到标准输出stdout,printf函数的声明如下。int printf(const char *format, ...)printf() 的格式控制字符串组成如下:%[flags][width][.precision][length]specifier%[标志][最小宽度][.精度][长度]说明符,其中[]代表可选的。1、flags(标志)1.1、-在给定的字段宽度内左对齐,默认是右对.原创 2021-03-27 10:39:15 · 1512 阅读 · 0 评论 -
atof()
https://en.cppreference.com/w/c/string/byte/atof#include <stdlib.h>#include <stdio.h> int main(void){ printf("%g\n", atof(" -0.0000000123junk")); printf("%g\n", atof("0.012")); printf("%g\n", atof("15e16")); printf("%g\.原创 2020-08-23 22:45:41 · 201 阅读 · 0 评论 -
.\a.exe: file not recognized: File truncated collect2.exe: error: ld returned 1 exit status
在使用vs code编译程序的过程中,就会报如下错误.\a.exe: file not recognized: File truncatedcollect2.exe: error: ld returned 1 exit status这个是因为使用gcc命令导致的,在执行的时候用了gcc .\a.exe就会导致报错,如果直接使用.\a.exe就能正常执行,哈哈...原创 2020-08-22 17:11:22 · 1846 阅读 · 0 评论 -
printf输出%号
printf("%%s");原创 2020-07-30 10:33:39 · 491 阅读 · 0 评论 -
assignment in condition
a原创 2020-07-11 11:10:57 · 4731 阅读 · 0 评论 -
C语言中的restrict关键字
知乎中有个回答:https://www.zhihu.com/question/41653775额外链接:restrict type qualifier:https://en.cppreference.com/w/c/language/restrictPointer aliasing:https://en.wikipedia.org/wiki/Pointer_aliasing原创 2020-07-05 16:52:06 · 231 阅读 · 0 评论 -
已知矩形的宽和高以及与x轴夹角,求对边的两条边的中心坐标
目录问题描述:解决方案:编程测试问题描述:问题描述:矩形的一个顶点在原点,已知矩形的宽度W以及高度H,以及矩形和X轴方向的夹角角度angle,求离远点较远的两条边的中心坐标点。P(x,y)以及Q(x,y),如下图所示。解决方案:求矩形边的中心坐标点,最简单的方法就是将其余三个顶点的坐标全部求出来,只要将两个顶点的坐标点相加除2就是中心店的坐标。Point1和Point3直接利用三角函数求即可。Point2作一条辅助线,找到和point1的关系即可。x2 + sin(弧度)原创 2020-07-05 11:00:29 · 1089 阅读 · 0 评论 -
使用vs code 配置c/c++开发环境
1、安装VS codeVS code下载地址:https://code.visualstudio.com/Download安装的时候将PATH路径选项勾选,这样就不用再配置路径了。其余略过。2、安装C/C++扩展件3、安装安装c/c++编译器,并配置路径3.1、安装MinGW编译器MinGW下载地址:https://sourceforge.net/projects...原创 2020-04-09 21:34:00 · 272 阅读 · 0 评论 -
ASCII通讯解码
最近接到一个ASCII码通讯的协议。以‘<’号开始,‘>’号结束,每个字段以竖线隔开例如收到下面这串字符让设备工作就行了,时间为10分钟。<typedef|A|10>编程思路大概如下#include <stdio.h> #include <stdlib.h> //pause#include <string.h> /...原创 2020-01-10 19:32:04 · 1284 阅读 · 0 评论 -
STM32 CubeMX设置ADC时 “Scan Covnersion Mode”打不开【已解决】
在使用STM32的CubeMX工具配置ADC扫描时,“Scan Covnersion Mode”却使能不了,原因是扫描模式需要通道数大于1既"Number of Conversion"选项数字需要大于1即可。当这个值大于1扫描模式会自动使能。参考:STM32CubeMX v4.27.0 can't disable Scan Conversion Mode on ADC of F4...原创 2019-11-07 21:02:59 · 6512 阅读 · 5 评论 -
警告 C6011 取消对NULL指针XXX的引用
若要更正此警告,请检查指针是否有 null 值#include <malloc.h>void f( ){ char *p = ( char * )malloc ( 10 ); if ( p ) { *p = '\0'; // code ... free( p ); }}官方解释:警告 C6011:取消引用 NULL 指针 &l...原创 2019-11-06 20:28:35 · 23787 阅读 · 3 评论 -
error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.
使用VS编程时,碰到如下问题。error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details....原创 2019-11-06 20:09:58 · 443 阅读 · 0 评论 -
NOP伪指令
NOP(No Operation)意为无操作既空指令,是汇编语言的一个伪指令。但是如果在ARMv6K, ARMv6T2, ARMv7, ARMv8 - M结构体系中,NOP不是伪指令。伪指令(Pseudo Instruction)是用于对汇编过程进行控制的指令,该类指令并不是可执行指令,没有机器代码,只用于汇编过程中为汇编程序提供汇编信息。伪指令包括ADR、ADRL、LDR、NOP。N...原创 2019-11-06 19:49:18 · 2013 阅读 · 4 评论 -
memcpy和strcpy辨析
的strcpy和memcpy的主要有以下3方面的区别。1,复制的内容不同.strcpy只能复制字符串,而memcpy的可以复制任意内容,例如字符数组,整型,结构体,类等。如图2所示,复制的方法不同.strcpy不需要指定长度,它遇到被复制字符的串结束符“\ 0”才结束,所以容易溢出.memcpy则是根据其第3个参数决定复制的长度。3,用途不同。通常在复制字符串时用的strcpy,而需要复制其他...原创 2018-02-26 08:37:31 · 259 阅读 · 0 评论 -
Simplicity Studio 4 用法
刚刚用了EFM32的Simplicity Studio 4 软件 来记录一下用法,软件可以去官网下载。第一步:首先连接好板子,打开这个软件,更新一下包,如图:后面的跟着步骤来就行,然后就等下载完成,根据网速吧,网速不好就需要等好久,趁这个时间可以泡一杯咖啡喝......第二步:配置芯片型号:点击左上角的箭头,右键选择 Device Configuration ,然后跳出一个窗口选择你所用到的芯片,...原创 2018-03-23 16:31:10 · 14766 阅读 · 3 评论 -
函数指针&&指针函数
1、函数指针如果在函数中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址)称为这个函数的指针。定义一般函数指针的形式: 类型名 (*指针变量名) (函数参数列表)例子:int (*p)(int,int);p是一个指向函数的指针变量。p的类型为:int(*)(int,int)表示。2、指针函数指针函数是一个函数,函数都有返回类型(如果...原创 2018-03-30 15:58:21 · 353 阅读 · 0 评论 -
C语言整型(int)转十六进制(hex)代码
void Int-To-Hex( uint32_t integer ){ uint8_t c; int i, j, digit; for ( i = 7, j = 0; i >= 0; i--, j++ ) { digit = (integer >> (i * 4)) & 0xf; if...原创 2018-04-13 10:05:04 · 16635 阅读 · 0 评论 -
二维数组指针
定义二维数组指针提供以下两种方方式。1. char *pArray[10];2.char (*pArray)[10];简单理解,X为未知数:1. char *pArray[10]; <==> char *[10][X];2.char (*pArray)[10];<==>char *[X][10]第一种是定义指向10字符型指针的指针也就是4*10*1字...原创 2018-05-30 19:06:59 · 801 阅读 · 0 评论 -
if defined elif else endif
#if defined(CREDIT) credit();#elif defined(DEBIT) debit();#else printerror();#endif原创 2019-01-18 19:53:25 · 686 阅读 · 0 评论 -
指向数组指针与指向整形数的指针
最近看书看到二维数组与指针的章节,将一个二维数组名字赋值给一个指向整形数的指针,咋看没毛病,其实还是数组与指针的概念没有理清楚,先放代码。#include <stdio.h>int Array[1][2]={1,2};int main(void) { int *p; //p = Array; 两边的类型不一样不能直接赋值 if(*Array ...原创 2019-05-09 22:02:09 · 5083 阅读 · 0 评论 -
二维数组用指针的方式初始化
二维数组用指针的方式初始化,理解下面的程序,首先要对二维数组有深刻的理解。#include <stdio.h>int Array[5][6];int main(void) { int (*i)[6]; //定义一个数组指针 for(i=Array;i<&Array[5];i++) { int *p; fo...原创 2019-05-10 21:48:47 · 4026 阅读 · 0 评论 -
malloc函数详解以及例程
描述C 库函数void *malloc(size_t size)分配所需的内存空间,并返回一个指向它的指针。声明下面是 malloc() 函数的声明。void *malloc(size_t size)参数size-- 内存块的大小,以字节为单位。返回值如果内存请求成功,则返回一个(void *)类型的指针。如果请求失败,则返回 NULL提示:程序里一定要判断...原创 2019-05-12 15:41:34 · 3576 阅读 · 0 评论 -
C语言运算符优先级列表(超全)
小编将C语言中的运算符优先级整理了一份,知道宝宝们懒,所以是以图片的形式整理出来的,需要的宝宝们可以直接以图片的形式保存下来。需要注意的点: ‘!’属于单目运算符,并不属于逻辑运算符。 单目运算符、条件运算符、赋值运算符的结合性是从右至左,其他运算符结合性是从左至右。 同一运算符有优先级之分(比如算符运算符的乘法的优先级比加法优先级高)。 运算符的优先级...原创 2019-05-29 22:14:26 · 20637 阅读 · 0 评论 -
单片机三种烧录方式ICP、IAP和ISP详解
单片机的烧录方式主要可以分为三种,分别为ICP(在电路编程)、IAP(在应用编程)以及ISP(在系统编程)。玩单片机的同学都应该听所说IAP、ICP和ISP这几个词,在此小编在帮你们“巩固”一下知识。首先先来介绍这几个小伙伴的名字。ICP(In Circuit Programing)在电路编程 ISP(In System Programing)在系统编程 IAP(In applicatin...原创 2019-06-15 10:48:19 · 10990 阅读 · 0 评论 -
带你剖析(*(void)(*)()0)();
(*(void)(*)()0)();在此,您已经看到了这篇文章,不妨停留几分钟,思考如上表达式的意义何在?如果思考无果,请继续看这边文章,接下来你会获得答案,你会发现原来也不过如此,就是纸老虎,一捅即破。任何C变量的声明都由两部分组成:类型以及一组类似表达式的声明符(declarator)。声明符从表面上看与表达式有些类似,对它求值应该返回一个声明中给定类型的结果。如:int ...原创 2019-06-22 20:53:07 · 1216 阅读 · 4 评论 -
C语言中宏定义的盲区-define
原文链接:C语言中宏定义的盲区-define#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。(1) 简单的宏定义:#define <宏名> <字符串>#define VALUE ((sizeof(a)) /si...原创 2019-06-29 17:47:30 · 314 阅读 · 0 评论 -
system pause 的头文件
头文件为#include <stdlib.h>#include <stdio.h>#include <stdlib.h> //pause头文件int main(){ printf("Hellow World!\r\n"); system("pause");}运行效果:原创 2019-10-03 18:11:26 · 14382 阅读 · 0 评论 -
error: #268: declaration may not appear after executable statement in block
今天使用Keil5调试代码时,蹦蹦出来一个Error(s),可把我高兴坏了。哈哈...错误类似下图。变量的声明,不能放在可执行语句的后面,必须在主函数开头声明变量!只需要把Tmp变量的声明放到SYS_Init函数之前就行了。int main(){ SYS_Init(); /* Init UART0 to 115200-8n1 for print message...原创 2019-10-08 20:17:25 · 937 阅读 · 4 评论 -
emWin - 汉字字库的生成以及显示教程(附加代码)
在工作中使用了emWin在之后除了画图之外,另一个就是汉字库的使用了,这个可是非常吃空间的,用了就理解了。在这里主要教大家如何生成汉字库以及显示。工作环境:win10家庭版,Visual Studio 2017专业版,emWin模拟器首先我们先生成汉字库,用到的工具是FontCvtST.exe,打开软件,步骤如下:再此我选择标准的,下面有抗锯齿的,扩展模式的,点击“OK”,继续走....原创 2018-02-26 19:55:29 · 6415 阅读 · 4 评论