03 2017 档案

摘要:任何C语言的编译过程可分为以下三部分: 一.预编译 在C语言中,以#开头的语句又叫预编译指令。预编译主要做以下两件事情: 1.将#include包含的头文件做简单的文本替换; 2.将代码中的注释删除。 gcc -E 参数代表预编译。以test.c函数为例,内容如下: 进行预编译: 如上图,编译完成后 阅读全文
posted @ 2017-03-30 10:54 夜行过客 阅读(507) 评论(0) 推荐(0) 编辑
摘要:由于微软在VS2013中不建议再使用C的传统库函数scanf,strcpy,sprintf等,所以直接使用这些库函数会提示C4996错误,在源文件中添加以下指令就可以避免这个错误提示。 #pragma warning(disable:4996) 阅读全文
posted @ 2017-03-29 10:19 夜行过客 阅读(3648) 评论(0) 推荐(0) 编辑
摘要:一.文件操作 读文件的顺序: 1.先打开文件 2.读写文件 3.关闭文件 1.1 fopen r 以只读方式打开文件,该文件必须存在,文件必须是可读的。 r+ 以可读写方式打开文件,该文件必须存在。 rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。 rw+ 读写打开一个文本文件,允许读和 阅读全文
posted @ 2017-03-27 21:09 夜行过客 阅读(13102) 评论(0) 推荐(0) 编辑
摘要:这个错误很隐蔽,代码上没有任何错误,右击查看libs上也没有任何错误,最后通过一个地方找到了问题: “Window”-"Show View"-"Problems" 解决方案: 找到java project facet所在的位置,将其java编译版本修改成与project的编译版本一致即可。 确定,重 阅读全文
posted @ 2017-03-21 10:33 夜行过客 阅读(242) 评论(0) 推荐(0) 编辑
摘要:一.结构体 1.1 结构体struct定义及初始化 执行结果: 1.2 结构体的内存对齐 编译器在编译一个结构的时候总是采用内存对齐模式,结构体总是以最大的成员作为对齐单位,以偶数位对齐。 如果结构体的所有成员都是同一种类型,那么这个结构体在内存和数组的存放方式是一样的。 执行结果: 内存对齐示意图 阅读全文
posted @ 2017-03-08 15:22 夜行过客 阅读(554) 评论(0) 推荐(0) 编辑
摘要:Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing Gradle Project ,有时新建项目的时候报 Gradle Project Compile Error 等等相关的问题 解决这些问题的第一种办法: 首先打开 阅读全文
posted @ 2017-03-07 16:31 夜行过客 阅读(1181) 评论(0) 推荐(0) 编辑
摘要:一.内存布局 1.1 代码区 代码区code,程序被操作系统加载到内存的时候,所有的可执行代码都加载到代码区,也叫代码段。代码区是可读不可写的。 代码区中的所有的内容在程序加载到内存的时候就确定了,运行期间不可以修改,只可以执行。 1.2 静态区 静态区是程序加载到内存的时候就确定了,程序退出的时候 阅读全文
posted @ 2017-03-03 10:47 夜行过客 阅读(323) 评论(0) 推荐(0) 编辑
摘要:一个C语言变量的作用域可以是代码块 作用域,函数作用域或者文件作用域。 不推荐写法 int a; // 出现了语法的二义性,可能是声明也可能是定义,所以最好定义完成之后声明 void func(); // 出现了语法的二义性,可能有参数,也可能没参数 推荐写法(严谨写法) int a = 0; // 阅读全文
posted @ 2017-03-01 13:54 夜行过客 阅读(724) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示