C 语言经验总结
C 语言经验总结,归纳
星叔
博主主攻汽车基础软件,对AUTOSAR工具链及标准感兴趣。
展开
-
关于指针变量传形参void fun(unsigned char **num)
关于指针变量传形参今天遇到了一个经典的面试题,现在还不知道如何解决,很神奇!关于指针传值问题1、先看看这个函数的打印结果是啥?2、乍一看,没啥问题,再打印一下,确实没问题3、本以为到这就结束了,多打印几次4、打印第二次第三次就出问题了。5、目前只有把num他改成全局使用了...原创 2020-11-19 21:04:17 · 574 阅读 · 0 评论 -
S32K实现FlexNVM模拟EEPROM,并实现在一个固定地址更新数据
接上一篇FlexRAM模拟EEPROM,这篇我们用FlexNVM模拟EEPROM.Question1: 在操作Flash的时候,会将代码运行到RAM区内,目前没有找到实际代码,没搞清楚。Question2:在操作Flash的时候,Demo例程中总会出现,后门密钥访问加密安全字节,也没搞清楚。但是,通过看了一个礼拜的手册和Demo例程,将代码中可以实现功能的部分摘抄下来,以供交流/...原创 2020-03-21 11:33:50 · 3533 阅读 · 2 评论 -
函数指针和指针函数的区别
一、【函数指针】在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。1、函数指针定义函数类型(*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”...转载 2020-03-03 11:18:51 · 272 阅读 · 0 评论 -
C常见错误
二级指针传地址错误函数指针数组局部变量内存.原创 2019-12-09 16:27:16 · 87 阅读 · 0 评论 -
S32K144点灯,通过RTC秒中断进行闪烁并支持RTT打印,S32 Designed stdio 和MDK5分别实现
这段时间一直在学习这个S32K144的开发、学习了解了S32 Designed stdio(S32DS)和MDK构建项目的两种方法。有幸在GIT网站上搜索到了一篇关于MDK的S32点灯的文件,综合学习。这两段程序都支持蓝宙的开发板,一直想着等我解决了这些基本的问题一定要分享出来。整理一些遇到的小问题,其实这些东西都可以在HELP帮助文档中查找。1,关于S32 DS怎样打开已有新项目...原创 2019-09-27 15:46:00 · 1999 阅读 · 0 评论 -
实现STM32CubeMx点亮STM32F103C8T6点亮一个LED灯
打开STM32CubeMx软件,实现第一步,设置配置参数!第二步,设置生成属性,点击右上方GENERATE CODE第三步,简单修改代码,在while(1) 添加这四行代码,如下所示 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); HAL_Delay(1000); ...原创 2019-07-29 17:38:54 · 4949 阅读 · 0 评论 -
Qt实现读取BIN文件
因工作需要,又转化、读取了一次BIN文件,其实之前写过,就是想不起来,所以记一下笔记,以防下次再用!typedef struct{ uint32_t AddressStart = 0; uint32_t DataLen = 0; QByteArray Data = nullptr;} Section;static QList<Section>* ...原创 2019-07-04 09:38:08 · 10569 阅读 · 2 评论 -
十六进制字符串转十进制(Qt实现)
uint32_t HexToDex(QByteArray DataLineData){ /****S5的数据字节长度**************/ int S5DateLength=HexCheckSumPosition(GetHexLineDataLen(DataLineData)); uint32_t S5DexLength=0; for(int i=1,j...原创 2019-07-03 11:51:56 · 3886 阅读 · 0 评论 -
无符号十六进制字符串转为十进制数
int HexToDec(char *src){ //将src中的无符号十六进制字符串转为十进制数 //如src="001A",则返回26 //字符串src需要以'\0'作为结束标志 int value=0,srclen=strlen(src); int i; for(i=0;i<srclen;i++){ ...转载 2019-06-10 17:39:31 · 4380 阅读 · 0 评论 -
将Hex转换的内存文件转换成BIN文件(Qt实现)
接上一个博客,hex转换成功了内存文件,但是无法验证转换的文件是否正确,然后目前有两种方法第一种:将这种内存文件反转成Hex文件进行对比第二种:将这种内存文件转换成Bin文件,然后再将原Hex文件转换成Bin文件,然后两个Bin文件进行对比、(HEX和BIN文件的转换举例)Hex文件::03000000020040BB:0700400075815F000200431F...原创 2019-06-20 10:04:26 · 3745 阅读 · 0 评论 -
读hex文件 c语言读取十六进制文件.hex(Qt实现)
将HEX文件读写成地址加数据的格式,HEX文件格式可以参考https://blog.csdn.net/a1037488611/article/details/43340055文档中有关与效验算法方面的有点问题,可以参考本人效验代码以下是我在Qt上实现的完整代码#include<stdio.h>#include<stdlib.h>#include&...原创 2019-06-14 14:38:08 · 10107 阅读 · 0 评论 -
CRC32和CRC16效验源码分享
开发环境:VC6++,可以移植到其他环境关于CRC效验原理可以参考博客https://blog.csdn.net/zjli321/article/details/52998468CRC效验通常有两种方法,一种是模2除法,另一种是查表法(这种表也只先通过模2除法算好,然后调用)/*******************************************************...原创 2019-06-01 10:10:26 · 1627 阅读 · 0 评论 -
结构体类型传参DEMO
#include<stdio.h>struct student{ int code; char name[10]; char sex[10]; int age;};int stuchg(struct student ptu){ ptu.code=10; return 0;}int stuchgs(struct ...原创 2019-04-09 14:16:33 · 487 阅读 · 0 评论 -
函数指针数组DEMO
#include<stdio.h>char Function1(){ printf("Function1\n"); return 0;}char Function2(){ printf("Function2\n"); return 0;}char Function3(){ printf("Function3\n"); ...原创 2019-04-09 12:17:18 · 129 阅读 · 0 评论 -
Volatile修饰符的作用
题目:最近使用飞思卡尔,对之前的Volatile修饰符有了新的认识。问题:经过Volatile修饰的变量RAM中的数据会跟随寄存器中的数据一块改变。(寄存器的值更新RAM区的值,这两个值是同一个值,是程序在运行的时候,CPU从RAM 区复制到寄存器的一个备份,但是由于RAM和寄存器的运行速度不一样,所以会导致下面的问题)判断:经常会出现在使用中断和外部硬件的时候!思考:可能会存在...原创 2019-04-06 09:46:01 · 530 阅读 · 0 评论 -
关于gcc编译流程四个步骤的具体分析,预处理、编译、汇编、链接
1.gcc编译需要下面四个步骤,分别是 第一行,可执行文件 (-o 是指可目标文件) c语言源文件 经过预处理的c源文件代码 编译后的目标文件 汇编语言源代码文件》》》c语言源文件2,经历四个步骤 1)c源文件到预处理c预处理源文件 ...原创 2018-03-24 15:21:14 · 1416 阅读 · 0 评论