![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
Yueyugezhu
这个作者很懒,什么都没留下…
展开
-
C程序文件布局(保证程序结构上清晰、简单)
--------------------------------------------------------------------------------------------------------------------a.c#include #include static int static_global_v; // 静态全局变量stati原创 2013-03-12 22:20:19 · 940 阅读 · 0 评论 -
不要返回局部数组的指针!
例一: char *fun(){ char buf[200]; ..... return buf;}返回栈上的指针,当函数执行完之后,栈空间被释放,指针指向了不可预知的一段内存。解决方法一:常量字符串char *fun(){ return "Hello world.";}缺点:有局限性,只适合返回常原创 2013-03-12 22:21:56 · 908 阅读 · 0 评论 -
#define的作用域
例一:#include void func(void){ #define TEST 100}int main(){ printf("TEST = %d\n", TEST); return 0;}运行结果:TEST = 100例二:#include原创 2013-03-12 22:06:11 · 5394 阅读 · 0 评论 -
指针和const
例一:#include void fun(const char **p){}int main(int argc, char **argv){ fun(argv); return 0;}编译会报错:fun()函数实参类型与形参类型不匹配。char **p1; // p1指原创 2013-03-12 22:16:56 · 685 阅读 · 0 评论 -
malloc、new区别与联系
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强转载 2013-03-12 22:15:13 · 681 阅读 · 0 评论 -
内存对齐规则
每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。规则:1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这转载 2013-03-12 22:07:07 · 849 阅读 · 0 评论