
c语言学习
iteye_572
这个作者很懒,什么都没留下…
展开
-
sizeof 用法
sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果你想“知其然,更知其所以然”的话,那么这篇文章对你或许有所帮助。菜鸟我对C++的掌握尚未深入,其中不乏错...原创 2010-02-22 09:21:51 · 96 阅读 · 0 评论 -
calloc 和 malloc
[b]aa[/b][img]javascrip:alert(1)[/img]malloc 和 calloc malloc函数原型: extern void *malloc(unsigned int num_bytes);函数描述: 分配长度为num_bytes字节的内存块入口参数: num_bytes 内存块的大小(单位为字节)出口参数: 无(或为空)返回值: ...原创 2011-07-28 14:08:05 · 96 阅读 · 0 评论 -
链接建立的详细过程
http://blog.youkuaiyun.com/yingfox/archive/2007/11/01/1862101.aspx基本TCP套接口编程一 本文出自:http://sunsland.top263.net 作者: (2001-10-22 12:00:00) 概述 socket() --得到文件描述符! bind() --我们在哪个端口? connec...原创 2010-05-17 19:33:36 · 172 阅读 · 0 评论 -
关于tcpdump 的应用
tcpdump -i lo -S -e -nn -X -s 2000 icmp选项(OPTIONS)-a试着把网络和广播地址转换成名称.-c当收到count报文后退出.-d把编译好的报文匹配模板(packet-matchingcode)翻译成可读形式,传往标准输出,然后退出.-dd把报文匹配模板 (packet-matchingcode)以C程...原创 2010-05-19 15:23:55 · 109 阅读 · 0 评论 -
window gcc 编译工具--DJGPP
http://www.delorie.com/djgpp/zip-picker.cgiC:\> mkdir djgppC:\> cd djgppC:\DJGPP> unzip32 d:\tmp\djdev203.zipC:\DJGPP> unzip32 d:\tmp\faq230b.zipC:\DJGPP> unzip32 d:\tmp\rhid15ab.zipC:\D...原创 2011-02-17 15:06:30 · 184 阅读 · 0 评论 -
gcc,g++ 编译的区别
test.cppint main(){return 1;}1.gcc 编译报错gcc test.cpp/tmp/ccgGC04E.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'collect2: ld returned 1 exit status2.g++编译通过...原创 2011-03-09 14:15:20 · 127 阅读 · 0 评论 -
指针与数组在结构体中的差别
在结构体中,数组和指针最大的的区别为:[b]数组将信息存在结构体所占有的内存中[/b],[b]而指针是将信息的首地址保存在结构体所占有的内存中[/b]引申:结构体中的指针的默认初始值是随机的。 而结构体中的数组...原创 2012-01-19 13:49:30 · 239 阅读 · 0 评论 -
c++ 的四种显示数据类型转换
C++提供了四种新的类型强制:static_castconst_castreinterpret_castdynamic_cast1)staic_cast静态强制;不能在无关的指针之间进行static类型强制class CAnimal{//...public:CAnimal(){}};class CGiraffe:public CA...原创 2011-04-26 15:35:11 · 174 阅读 · 0 评论 -
c/c++中 static 作用 和 c/c++中存储区域
static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。面向过程设计中的static全局变量、局部变量、静态全局变量、静态局部变量的区别C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文...原创 2011-05-10 08:33:40 · 128 阅读 · 0 评论 -
指针符号--误解
一、指向函数的指针和返回值为指针的函数指向函数的指针和返回值为指针的函数,看起来非常像。 指向函数的指针: int (*p)( ) 指针变量名为p返回值为指针的函数: int *p() 函数名为p。若指针是指向函数的,指针的++ -- + - 运算没有什么意义#includeint min(int a,int b){return a>b?b...原创 2011-07-27 17:17:12 · 200 阅读 · 0 评论 -
c语言0值标志
0 NUll \0 NUL EOF0 :整数0NULL: 定义为0或0L或(void *)0,用于指示一个指针值是空,即什么都不指;'\0': 用且只用字符串结束符;NUL : 0x00,0值字符,可以用于结束ASCII字符串,和'\0'类似,但是在c/c++中没有定义,如果要使用的话,需要自定义为 #define NUL '\0';EOF :通常定义为-1, 文件结束...原创 2011-07-27 07:15:50 · 496 阅读 · 0 评论 -
strlen 和 sizeof 对于字符数组的测试
#include#include#includeusing namespace std;int main(){string s="abc";char a[100];char b[]={'a','b','c'};char c[]={'a','b','c','\0'};strcpy(a,s.c_str());int len,i;len=strlen(a)...原创 2010-02-22 11:19:10 · 144 阅读 · 0 评论 -
c积累
1.调用系统int main(){ system("rm /home/book/fujinbing");}2.得到当前绝对路径,string 赋值,sting数组显示#include #include using namespace std;int main(){char buf[1024];getcwd(buf,1024);printf("%s\n...原创 2010-03-04 10:00:34 · 80 阅读 · 0 评论 -
关于sem信号量
msgdequeue.h本例示范Linux信号量的基本用法。该范例使用了两个线程分别对一个公用队列进行入队和出队操作,并用信号量进行控制,当队列空时出队操作可以被阻塞,当队列满时入队操作可以被阻塞。 主要用到的信号量函数有: sem_init:初始化信号量sem_t,初始化的时候可以指定信号量的初始值,以及是否可以在多进程间共享。 se...2010-03-06 11:31:30 · 337 阅读 · 0 评论 -
网络传输字节序的调整
NBO与HBO 网络字节顺序NBO(Network Byte Order):按从高到低的顺序存储,在网络上使用统一的网络字节顺序,可以避免兼容性问题。主机字节顺序(HBO,Host Byte Order):不同的机器HBO不相同,与CPU设计有关计算机数据存储有两种字节优先顺序:高位字节优先和低位字节优先。Internet上数据以高位字节优先顺序在网络上传输,所以对于在内部是以低位字节优先方式...原创 2010-03-08 09:59:01 · 399 阅读 · 0 评论 -
野指针
野指针 “野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的...2010-03-08 16:36:11 · 68 阅读 · 0 评论 -
!!!切忌,不要轻易使用指向栈的指针
程序 include void f1( int *& j) { int l=20; int *k=&l; j=k; } void any_function_use_local_variables() { int a,b,c; a=...2010-03-08 17:19:31 · 163 阅读 · 0 评论 -
libevent 小例
#include #include #include #include #include #include void connection_time(int fd, short event, struct event *arg) { char buf[32]; struct tm t; time...2010-03-08 20:38:13 · 73 阅读 · 0 评论 -
静态链接库和动态链接库
http://blog.youkuaiyun.com/fengyv/archive/2006/05/25/754030.aspx一、静态链接库打包方式 ar -rc 库名 编译文件 ar -rc libtest.a *.o注意:输入是.o(编译文件),输出是.a(静态库文件)二、动态链接库打包方式 gcc -fpic -shared -o 库名 ...原创 2011-05-26 18:24:55 · 83 阅读 · 0 评论 -
stack溢出 ** stack smashing detected ***: ./a.out terminated
该类错误是修改了返回指针,一般是由于1. 数组越界赋值。(数组没有边界检查)int a[8]; a[8],a[9],a[-1]。。都能正常编译,连接,运行时可能出错。2.使用 strcpy等不安全(不带长度检测的函数),char a[1], char *b="aaa"; strcpy(a,b); 局部变量(函数内的变量)存在栈中,应为栈是先下(低地址)生长的,故 函数返回指针 要...原创 2013-05-10 13:08:28 · 1899 阅读 · 0 评论