随笔分类 - C语言
摘要:在MDK开发环境中,会遇到 $Sub$$ 和 $Super$$ 的用法,下面的例子将展示这种用法: 打印的结果是: 只有通过实际用例才能明白到底是怎么用的,一例胜千言。
阅读全文
摘要:CrossWorks Dark
阅读全文
摘要:在编译提示窗口的开始提示如下错误: *** Error: cannot write Scatter-file '.\Objects\ISP_308*.sct' 在编译提示窗口的末尾出现如下提示: error - cannot create command input file '.\Objects\
阅读全文
摘要:用keil MDK 打开某个深层文件夹里的工程时,显示空白页面,看不到任何东西,也没有任何错误提示,这种现象是最糟糕的,很难解决。 Keil 目录可以很好地支持中文,这点儿毫无问题,那究竟是为什么没有反应呢,灵机一动,应该是目录的字符总数太多了,超过了128字节或256字节导致的。 相当多的软件,都
阅读全文
摘要:在一个项目中,使用C语言,首先在一个 A文件中定义了一些全局变量,并赋初值,并在 B文件里引用,并在一个函数中重新赋值。在main函数的起始处中调用该赋值函数,发现并没有被重新赋值。 一般情况下,在中断中使用的全局变量必须要 volatile 修饰,或者一些 IO 口变量必须要 volatile 修
阅读全文
摘要:xdata volatile uint8_t temp = 0; //不报错 volatile xdata uint8_t temp = 0; //报错 xdata 表示把变量声明在外部 RAM 中; volatile 表示不优化改变量,每次写入时,都是真实地写入; 当我们定义一个在外部 RAM中的
阅读全文
摘要:刚才,在windows 10 上,使用 codeblock 开发了一个程序,一运行就闪退,后来定位到是数组太大的缘故,我定义了一个200万字节长度的 char 型数组。 然后把数组字节的大小 200万 改为 100万 程序就正常了。也就是在windows上,定义超过200万字节长度的数组可能会有问题
阅读全文
摘要:玩过 STM32 位MCU的都知道,想把一个长数组存储在大容量的Flash当中,用 const 修饰数组即可。 那么在51单片机中,如何做到这一点呢,经过在某一型号单片机下,工具是 Keil,测试用 const 并不行,而必须采用传统的 code 关键词修饰数组,数组才会被存放到 Flash 当中。
阅读全文
摘要:刚才用keil 5 编译代码,弹出一个错误:error: l6016u: symbol table missing/corrupt in object/library dataconv.lib 找到官网的错误提示,但是毫无办法解决它。后来想到,刚才我用工具把批量把 GB2312 转成了 UTF8 ,
阅读全文
摘要:今天调试一个读取文本文件的程序,用的是codeblock C++ GCC,在 Debug模式下能正常运行,Release 下无法正常运行。不正常的表现,就是程序执行了一半,就直接退出了,输出的文本只有大约一半的样子(不是刚好一半)。有空再细细研究。 问题已经找到:在函数内定义了一个长为1000字节的
阅读全文
摘要:/*get the num after the "=" of the string 一行字符串由等号“=”连接前后两部分,本函数提取“=”前面的部分,支持过滤字符串前后的空白字符,字符串中间不能有空格 字符串只能有大小写字母和数字以及下划线组成,不能有其他字符,可以以数字开头。 其实该函数不仅限于“
阅读全文
摘要:/*get the num after the "=" of the string 一行字符串有等号“=”连接前后两部分,等号后面为十进制数字,本函数是获取等号后面的“数字”字符串,并把它转换为十进制数值返回。 本函数只适用于整形数字转换,不支持浮点型。 */ int64_t getEndIntNu
阅读全文
摘要:问题的解决步骤: 1、右击工程——> C/C++ Build 2、选中Builder Settings 栏目,下面一行有个 Build directory:XXXX,发现这个目录是错误的,手动修改好再编译就没有问题了。
阅读全文
摘要:突然 Nios II无法使用 printf();函数进行格式化输出了,费尽心思地查找问题,最终定位到了一个函数名字上 void write(U16 data);这是我同事编写的函数。只要把该函数名字改一改,比如改成 void Write_2Byte(U16 data);函数printf();立马就能
阅读全文
摘要:最近看程序,发现很多程序员喜欢通过函数操作全局变量,通过函数返回全局变量。 逛了一下论坛,发现通过函数操作全局变量有很多好处。 首先在一个文件中用 static 定义全局变量,如: static int flag;//只能在本文件中使用,避免了别的文件误用本变量 /*获得全局变量的值*/ int g
阅读全文
摘要:C 语言中结构体的赋初值,可以对指定元素赋值,不必按照顺序,前提是通过 "." 来操作,在 c-free 5.0版本下验证通过。 <pre name="code" class="cpp"> #include <stdio.h> typedef struct{ int a; char b; float
阅读全文