摘要:1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 [2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运... 阅读全文
常用的位操作:置位、清零与测试
2013-02-09 22:54 by jediael, 279 阅读, 0 推荐, 收藏,
摘要:以下程序可用于把某个位置位、清零或测试某位为0还是1:#include #include int setbit(int num, int bit);int clearbit(int num, int bit);bool testbit(int num, int bit);int main(void)... 阅读全文
使用异或加密数据
2013-02-09 22:24 by jediael, 140 阅读, 0 推荐, 收藏,
摘要:(1)使用异或可简单加密数据,解密时使用加密后的数据与密钥重做一次异或运算即可。(2)由于某些操作系统不能正确处理非打印字符,因此,对于此类字符可采取原有不做加密。#include #include #define KEY 'z'int main(void){ char orig_char, new... 阅读全文
枚举作为整数
2013-02-08 11:22 by jediael, 282 阅读, 0 推荐, 收藏,
摘要:1、枚举作为整数在系统内部,C语言会把枚举变量和常量作为整数来处理,默认情况下,编译器会把整数0、1、2、3……赋给特定枚举中的常量。如枚举city中,GZ、FS、SZ、DG分别被赋值0、1、2、3。而枚举变量C1被保存为0,C2为3……2、枚举值的取值范围当定义一个枚举变量时,其值可以为enum中... 阅读全文
宏定义一些内容
2013-02-07 23:20 by jediael, 158 阅读, 0 推荐, 收藏,
摘要:预处理指令大多数预处理指令都属于下面3种之一:(1)宏定义(2)文件包含(3)条件编译其它还有一些不常用的#error #line和pragma。宏定义(1)简单的宏#define PI 3.141592654(2)带参数的宏#define MAX(x,y) ((x)>(y)?(x):(y))宏定... 阅读全文
libc glibc glib 的关系
2013-02-07 22:22 by jediael, 320 阅读, 0 推荐, 收藏,
摘要:发现很多人没有搞清楚这两个东西.有个错误的观点:认为Glib是GNU的东东.(因为前面那个"g"),而Glibc是Glib的一个子集. 其实,Glib和Glibc基本上没有太大的联系,可能唯一的共同点就是他们都是UNIX下C编程调用的库而已. Glib是GTK+调用的底层核心库.(GTK+由开发G... 阅读全文
重要的开源资源及50个c/c++源代码网站
2013-02-06 21:52 by jediael, 208 阅读, 0 推荐, 收藏,
摘要:我的选择:http://c-faq.com/index.html很多很多有用的信息,如书籍推荐、编译器介绍,在哪找到C库函数的源代码等,还有一些C语言的知识点。http://stackoverflow.com/questions/tagged/c?sort=votes&pagesize=15论坛ht... 阅读全文
Segmentation fault (core dumped)
2013-02-06 11:34 by jediael, 260 阅读, 0 推荐, 收藏,
摘要:以下程序不小心在11行scanf()中把parr写成了*parr,在编译时没问题,但在运行时出现:[lujinhong@lujinhong chapter12]$ gcc reverse3.c[lujinhong@lujinhong chapter12]$ ./a.outEnter 10 numbe... 阅读全文
Segment fault及LINUX core dump详解
2013-02-06 11:03 by jediael, 275 阅读, 0 推荐, 收藏,
摘要:C 程序在进行中发生segment fault(core dump)错误,通常与内存操作不当有关,主要有以下几种情况:(1)数组越界。(2)修改了只读内存。(3)scanf("%d",n),n不是指针。……1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这... 阅读全文
把十进制转化为二进制的一种方法
2013-02-05 12:50 by jediael, 156 阅读, 0 推荐, 收藏,
摘要:把十进制转化为二进制的一种方法:void pb(int n){ if(n != 0){ pb(n/2); putchar('0'+n%2); }}int main(void){ for(int i=10; i<25; i++){ pb(i)... 阅读全文
浙公网安备 33010602011771号