- 博客(28)
- 资源 (5)
- 收藏
- 关注
原创 indent工具自动统一格式化代码风格
indent工具自动统一代码风格:indent -gnu style.c -o style_gnu.c //变成gnu风格indent -kr -i8 style.c -o style_kernel.c //变成内核风格两大风格:GNU编程风格->http
2015-05-28 14:10:08 2037
原创 Source insight 去掉^M
用sourceinsight默认设置,修改代码提交到git服务器上可能会造成代码对不齐,每行末尾有^M的情况。可以做如下设置解决这类问题。在 “Options->Preferences->Files”, 设置“Default File Format” to “UNIX(LF)”,这样在git服务器上的代码每行最后就不会出现^M了sourceinsight默认的文件结尾符是windown
2015-05-27 10:45:50 9500
原创 19-#pragma
#pragma预处理#pragma是编译器指示字,用于指示编译器完成一些特定的动作#pragma所定义的很多指示字是编译器和操作系统所独有的#pragma在不同的编译器间是不可移植的 预处理器将忽略它不认识的#pragma指令 两个不同的编译器可能以两种不同的方式解释同一条#pragma指令一般用法: #pragma parameter注:不同的p
2015-05-26 10:53:59 510
原创 18-#error.#line
自定义编译错误信息#error的用法#error用于生成一个编译错误消息,并停止编译用法: #error message注意:message不需要用双引号包围#error编译指示字用于自定义程序员特用的编译错误消息类似的,#warning用于生成编译警告,但不会停止编译#include #define CONST_NAME1 "CONST_
2015-05-26 10:53:20 360
原创 20-#_##
#运算符用于在预编译期将宏参数转换为字符串#include #define CONVERS(x) #xint main(){ printf("%s\n", CONVERS(Hello world!)); pritnf("%s\n", CONVERS(100)); printf("%s\n", CONVERS(while)); printf("
2015-05-26 10:53:02 424
原创 17-conditional_compilation
条件编译条件编译的行为类似于C语言中的if...else条件编译是预编译指示命令,用于控制是否编译某段代码/* #define C 1 */int main() { #if (C == 1) printf("This is 1st printf ...\n"); #else printf("This is 2nd prin
2015-05-26 10:51:04 423
原创 14-priority_typeconversion
#include #include typedef struct _demo { int* pInt; float f;} Demo;int func(int v, int m) { /* return (v & m != 0); //v & (m != 0) */ return ((v & m) != 0);}int main()
2015-05-26 10:50:35 394
原创 16-macro
宏定义宏常量#define定义宏常量可以出现在代码的任何地方;#define从本行开始,之后的代码都可以使用这个宏常量#define ERROR -1#define PI 3.14#define PATH_0 "D:\delphi\c.ppt"#define PATH_1 D:\delphi\c.ppt#define PATH_3 D
2015-05-26 10:50:08 423
原创 13-++.--
++,--int i = 3;(++i) + (++i) + (++i); 你有必要这么写吗?在C语言里面这是一个灰色地带,C语言规范里面只定义了++操作,但也没有规定这样的表达式如何计算;每一种编译器的都有自己的处理方式;int x = 3;int k = (++x, x++, x+10);从左到右顺序求值,然后把最后一个表达式的值作为逗号表达式的结果;前
2015-05-26 10:49:48 364
原创 15-compilation_process
编译预处理被编译器隐藏的过程:file.c + file.h -> 预处理器cpp(删除注释,展开宏等) -> file.i -> 编译器gcc -> file.S (汇编代码) -> 汇编器as -> file.o -> 连接器linker(链接libc.a lib.so等) -> file.out
2015-05-26 10:49:36 1001
原创 11-logical_operation_symbol
逻辑运算符使用逻辑运算符&&,||和!#include int main() { int i = 0; int j = 0; if ( ++i > 0 || ++j > 0 ) { printf("%d\n", i); //1 printf("%d\n", j); //0 } return 0
2015-05-26 10:48:30 408
原创 12-bit_operation
位运算符在C语言中的位运算符 & 按位与 | 按位或 ^ 按位亦或 >> 右移 ~ 按位取反(单目运算符)结合律 a&b&c (a&b)&c a&(b&c)交换律 a&b b&a左移和右移注意点左移运算符右移运算符>>把运算数的二进制位右移,高位补符号位,低位丢弃;
2015-05-26 10:47:36 419
原创 10-quotation
单引号与双引号#include int main(){ char* p1 = 1 ; char* p2 = '1'; char* p3 = "1"; printf("%s, %s, %s", p1, p2, p3); //段错误 printf('\n'); //段错误; printf("\n"); return
2015-05-26 10:45:12 411
原创 08-annotate
C语言中的符号,.;:?'"()[]{}%^&~-高手五招胜有招,akari.c,C语言国际混乱大赛最佳展示奖下面哪些注释是正确的 1 int/*...*/i; 2 char *s="adcdefgh //hijklmn"; 3 //Is it a \ valid comment? 4 in/*...*/t i;
2015-05-26 10:43:42 353
原创 09-slash_backslash
续行符C语言中的续行符(\)是指示编译器行为的利器#def\ine MAX\255int main(){/\这是\\注释i\n\t\ *\ p\= \ NULL;printf("%0X\n", p);return 0;}续行符的使用编译器会将反斜杠后面的字符自动接到前一行在接续单词时,反
2015-05-26 10:41:14 463
原创 05-const.volatile
const关键字const修饰一个只读变量在c语言中const修饰的变量是只读的,其本质还是变量,在内存中占用空间本质上const只对编译器有用,在运行时无用;在运行时可以通过一个指针改变其值;用const int cc = 1;定义变量后做左值时,将报错做右值时, 1.直接访问 int cb = cc;直接从变量表取出内容替换; 2
2015-05-26 10:40:38 387
原创 04-goto.void.extern.sizeof
遭人遗弃的goto高手潜规则:禁用goto,程序质量与goto的出现次数成反比;一般在内核模块的入口函数才会大量使用goto语句,用来处理异常;goto常常会破坏结构化程序的顺序执行;goto语句也称为无条件跳转语句,一般格式为 goto 语句标签;其中语句标签是按标识符规定书写的符号,放在某一语句行的前面,标号后加冒号(:);语句标签起标示语句的作用,与goto
2015-05-26 10:40:07 542
原创 07-enum.typedef
enum是一种自定义类型enum默认常量在前一个直的基础上依次+1enum类型的变量只能取定义时的离散值enum color{ green, //0 red = 2; blue //3};enum color c = green;printf("%d\n", c);enum定义的是真正意义的常量#define宏定义的常量只是简单的进
2015-05-26 10:40:05 341
原创 06-struct.union
struct空结构体占多大内存struct D{};int main(){ struct D d1; struct D d2; printf("%d\n", sizeof(struct D)); printf("%d, %0x\n", sizeof(d1), &d1); printf("%d, %0x\n", sizeof(d
2015-05-26 10:39:36 375
原创 03-if.switch.do_while.for
分支语句ifif语句用于根据条件选择执行语句else不能独立存在且总是与它最近的未配对的if相匹配else语句后可以接连其他if语句if (condition) { //statement1;} else { //statement2;}if (cond1) { //statement1;} else if (cond2) {
2015-05-26 10:39:25 371
原创 02-auto.register.static
C语言中变量可以有自己的属性,在定义变量的时候可以加上属性关键字;属性关键字指明变量的特有意义;auto是c语言中局部变量的默认属性 作用就是让一个局部变量分配到栈区; 编译器默认所有的局部变量都是auto 指明变量分配在栈static关键字指明变量的静态属性 static关键字同时具有作用域限定符的意义; static修饰
2015-05-26 10:38:48 378
原创 01-C语言基本数据类型
关键字的秘密数据类型什么是数据类型数据类型可以理解为固定内存大小的别名;数据类型是创建变量的,模子->花形的圆形的星形的等等;char 1byteshort 2byteint 4byte 内存空间 +----------+ | char c | +----------+ | shor
2015-05-26 10:36:24 495
转载 akari.c
高手无招胜有招奖项:Best of Show功能:处理三种文件格式(PGM、PPM和ASCII Art)的降采样工具作者:Google华裔工程师Don Hsi-Yun Yang akari.c /* +
2015-05-20 19:41:01 587
转载 android bugreport 分析
android bugreport 分析Get Log from Android Systemadb bugreport > bugreport.txtcopy bugreport to the current directory.bugreport里面包含了各种log信息,大部分log也可以通过直接运行相关的程序来直接获得.步骤如下:1.adb shell 2.进入相
2015-05-13 20:36:14 1659
原创 .viminfo权限引起的vim无法记住上次编辑位置
让VIM记录文件上次浏览或编辑的位置 问题:当源码文件超过一个显示屏大小时,每次使用vim打开这个文件时,编辑光标总是停留在首行开始处,在反复查看/编辑文档的过程中非常不方便,要是vim能够记录文档最后一次浏览或编辑的位置该多好! 解决办法: 在~/.vimrc中加入以下内容 "让vim记忆上次编辑的位置autocmd BufReadPost * if li
2015-05-13 13:04:17 2327
转载 mkisofs命令制作iso文件
mkisofs命令行格式mkisofs [-adDfhJlLNrRTvz][-print-size][-quiet][-A][-b][-c][-hide][-hide-joliet][-m][-M][-o][-sysid ][-V ][-x][目录或文件] 基本参数-o 设置输出文件名-VSet Volume ID
2015-05-09 14:36:18 15822
转载 yum只下载软件不安装的两种方法
yum下载软件,不安装的方法:方法一:通过yum自带一个工具:yumdownloader[root@web1 ~]# rpm -qa |grep yum-utils[root@web1 ~]# yum -y install yum-utils*[root@web1 ~]# rpm -ql yum-utils/usr/bin/debuginfo-install/usr/bi
2015-05-09 09:44:12 1324
转载 如何自动生成makefile
GNU make允许将一个软件项目的代码分开放在不同的源文件里,有改动的时候可以只对改动的文件重新编译,然后重新连接,这种编译管理方法提高了生成目标的效率。make要调用一个makefile文件来实现。Makefile的编写是使用make的关键问题。当工程里面包含的很多源文件,库,文件放在不同的子目录时,手动书写makefile文件不方便且容易出错。一般情况下我们用autoconf和autom
2015-05-07 17:37:27 447
AnalysePlugin-v1.12-R43-all.zip for notepad++
2020-02-11
vim使用入门进阶教程
2015-10-30
linux应用基础学习笔记
2015-10-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人