
编程语言(c)
孙建飞的博客
朝闻道,夕死足矣!
展开
-
MakeFile基本符号简单解读
main:main.o mytool1.o mytool2.ogcc -o $@ $^..c.o: gcc -c $@--目标文件,$^--所有的依赖文件,$ 这个规则表示所有的 .o 文件都是依赖与相应的.c 文件的.例如mytool.o 依赖于mytool.c原创 2016-12-15 19:05:12 · 304 阅读 · 0 评论 -
关于二维数组常见调用方式
在最近几次开发中在二维数组作为形参的是调用中老显卡壳,特整理了下几种常见的调用模式模式(大家从代码中体会吧)!正确的应用模式一:void func1(int iArray[ ][10]){}int main(){ int array[10][10]; func1(array);}正确的应用模式二(应用一维数组指针作为参数):void func2(in原创 2016-12-21 22:35:39 · 3841 阅读 · 1 评论 -
typedef、#define区别
typedef char *pStr1;#define pStr2 char *;pStr1 s1, s2;pStr2 s3, s4上述的变量定义中,s1、s2、s3都被定义为char *,而s4则定义成了char,不是我们所预期的指针变量,根本原因就在于#define只是简单的字符串替换,而typedef则是为一个类型起新名字。原创 2017-02-05 16:24:01 · 182 阅读 · 0 评论 -
分隔符字符串处理(strtok与strsep区别)
1、strtok原型与应用原型:char *strtok(char *src, const char *delim);功能:将src(原字符串)根据delim(分隔符串)分解为不同子串(连续算一个)返回:属于当前分割的子串,当前没有分割的子串时返回NULL#include #include int main(void) { char s[] = "he原创 2017-01-16 20:05:26 · 3555 阅读 · 0 评论 -
strcpy/sprintf/memcpy的区别及适用场景
char*strcpy(char *dest, const char *src);其对字符串进行操作,完成从源字符串到目的字符串的拷贝,当源字符串的大小大于目的字符串的最大存储空间后,执行该操作会出现段错误。int sprintf(char*str, const char *format, ...)函数操作的源对象不限于字符串:源对象可以是字符串、也可以是任意基本类型的原创 2016-12-15 18:51:20 · 740 阅读 · 0 评论 -
malloc使用细节(东西虽小,出现问题影响挺大,注意留意)
malloc使用六步走如下1、分配内存空间。2、检查内存分配成功与否。成功返回内存首地址,失败返回NULL。3、清空分配好的内存空间。4、使用内存。5、使用完之后需要释放内存。6、对指针置空。如果释放之后不置空的话,之后万一继续用到会成为野指针。原创 2017-01-17 09:22:31 · 415 阅读 · 0 评论 -
GDB调试详解
基础用法1. 简介GDB(GNU Debugger)是GCC的调试工具。其功能强大,现描述如下: GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2.可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3.当程序被停住时,可以检查此时你的程序中所发生的事。 4.动态的改变你程序的执行环境。转载 2017-05-05 09:28:00 · 414 阅读 · 0 评论 -
C程序编译时各项内存分配
bss: BSS全称为Block Started by Symbol(或者block storage segment)。在采用段式内存管理的架构中,BSS 段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS段属于静态内存分配。.data: 表示数据段(data segment),通常用来存放程序中已初始化的全局变量的一块内存区,也属于静态内存分配.text:原创 2017-06-15 10:25:59 · 530 阅读 · 0 评论