C
爱若一生
C 菜鸟即将精通
展开
-
C基础作业
1.不同 数据类型的的范围。如int char 6.整型变量(int):短整型(short int)(-3万~3万)(2字节),普通整型(int)(-21亿~+21亿)(4字节),长整型(这里跟普通整型没区别)。可再细分有符号和没符号的整型。 7.浮点类型变量(double) 用来存实数 具体类型:float(4字节 )单精度(7位有效数,6位小数) double(8字节)原创 2012-01-02 09:50:43 · 965 阅读 · 2 评论 -
linux下线程创建失败问题
linux下线程创建失败问题写个碰到的问题,记录下自己的技术之路点滴pthread_detach(pthread_self())linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。原创 2013-01-09 13:36:44 · 2595 阅读 · 1 评论 -
0x7FFFFFFF 是long int的最大值
可以算一下 0x7FFFFFFF 是多少每个十六进制数4bit,因此8位16进制是4个字节,刚好是一个int整型F的二进制码为 11117的二进制码为 0111这样一来,整个整数 0x7FFFFFFF 的二进制表示就是除了首位是 0,其余都是1就是说,这是最大的整型数 int(因为第一位是符号位,0 表示他是正数)用 INT_MAX 常量可以替代这个转载 2013-02-19 10:16:31 · 64115 阅读 · 6 评论 -
C语音___复习一下
多个文件的时候,注意要给自己的函数加上static ,来限定仅仅是本文件内可以使用的函数。静态全局也是同样的:仅仅在本文件中使用有效。-----------------------第一天的C: C89 C99标准1. int a;scanf("%d",&a); char arry[a];//unix下C是支持动态数组的。2. gcc编译器需要我们加上空白行,以免在链接其他文件的原创 2011-12-25 22:06:28 · 2096 阅读 · 0 评论 -
在main函数执行之前和执行之后执行的方法<转载>
main函数执行之前,主要就是初始化系统相关资源:后来看到一本书,详细阐述了main之前和之后的详细机理,十分推荐阅读:程序员的自我修养 --链接、装载与库 实际上,在可执行文件被加载之后,控制权立即交给由编译器插入的Start函数,它将对后面这些全局变量进行准备: _osver 操作系统的构件编号 _winmajor 操作系统的主版本号转载 2012-03-29 21:13:41 · 910 阅读 · 0 评论 -
32位系统指针占4个字节,那64位系统呢?
按道理来说,是8个字节的。不过,为啥我们在64位机器上打出指针的字节数依旧是4个字节呢?为了兼容32位机器的程序呗,这是编译器的,如果想让他打印8个字节,貌似需要更改一下设置即可。http://bbs.chinaunix.net/thread-1635319-1-1.html原创 2013-11-07 10:26:34 · 14697 阅读 · 0 评论 -
设计方面
1.模块与模块之间,最常用的设计 1.中心点,向外扩散,各个模块的通信通过中心原点,他们之间没有任何关系。 2.单链表形式,一个模块被上一个模块调用,下面的模块完全与上面的模块无关。mvc原创 2013-12-19 20:00:30 · 754 阅读 · 2 评论 -
进制转换
二转十: 110010111000100011*2^0 + 1*2^4 + 1*2^8 +1*2^9 +1*2^10 + 1*2^12 + 1*2^15 + 1*2^16十转二:97 --> 97/2 = 48 余 148/2 = 24 024/2 = 12 012/2 = 6 06/2 = 3原创 2014-02-28 15:39:32 · 730 阅读 · 0 评论 -
map key char*
STL中map的key能否用char *呢?当然可以!在程序中需要用到一个map,本来是这样写的,map mapStr;为了追求效率,把string改成了char *,map mapStr;结果呢?可想而知,每次放进去的是指针,当查找的时候就出问题了,总是找不到。因为key中存放的是指针,当然找不到了。需要重载一下操作符,当查找时比较指针对应转载 2014-03-11 12:04:17 · 6303 阅读 · 0 评论 -
linux 通过Ip获取主机名等信息gethostbyaddr()等。
#include #include #include #include #include #include int main(int argc, char **argv){ char *ptr,**pptr; struct hostent *hptr; char str[32]; char ipaddr[16]; struct in_addr *hipaddr = (st原创 2013-03-06 10:52:31 · 8860 阅读 · 2 评论 -
消息队列
问:消息队列是双向的吗?消息队列只要有权限就可以读写,,没什么方向性而言。。msgsnd放数据,msgrcv读数据,只要有权限就可以,管什么进程2.要值接收一种类型的东东,msgrcv( msgid, (void*)&some_data, BUFSIZ, msg_to_receive, 2) 最后一个参数放2,倒数第二个参数就是那个类型。 如果需要接收类型3的第一个消原创 2013-01-25 15:27:10 · 717 阅读 · 0 评论 -
C/C++超级需要注意的容易引起的Bug
* . RCacheManage::Struct_Msg structmsg; structmsg = *(Struct_Msg*)buf;注意啦,如果结构体里面存在指针类型的东东,这样赋值就好像在有指针成员的类中进行 浅拷贝一样,那么就不能成功。 因此 ,要解决这个问题,我们需要把结构体中的每个成员变量来一一的赋值:如: strcpy(structmsg.strt原创 2012-09-11 19:13:14 · 1056 阅读 · 0 评论 -
linux判断文件是否存在
linux判断文件是否存在分类: C/C++ linux2011-07-06 10:05 2254人阅读 评论(0) 收藏 举报 对于判断文件是否存在,每个人有不同的方法!我通常采用两种方法 : open 和 access ;这个俩个方法有相似之处,且有不同之处;下面为大家详细说明他们的不同之处:open 是打开,读写等操作文件的一个函数,access就是一转载 2012-06-27 09:39:09 · 1238 阅读 · 0 评论 -
Linux 拷贝文件函数:不知道这个对不对,转载了再说
Linux 拷贝文件函数2007-12-17 10:561 /*2 * Copy a (real) file to another (real) file.3 * file can be a regular file or a simlink4 */5 int create_copy_file(const char *source, const ch转载 2012-06-27 13:32:20 · 3971 阅读 · 0 评论 -
工作学习到的C函数
*. fopen64() :正常的32位机器,打开大于2G的文件会出错,那么我们避免这种错误,我们可以用到宏定义,在大于2G的情况下,我们使用fopen64来保证打开文件不出错。 所以要注意:要考虑到大于2G的文件的读写。fseeko64() ftello64()配套哦*.strstr(str1,str2) 找出str2字符串在str1字符串中第一次出现的位置(不包括s原创 2012-06-27 09:09:35 · 1057 阅读 · 1 评论 -
C函数获取系统时间按照格式打印赋值
#include #include #include using namespace std;int main (){time_t rawtime;struct tm * timeinfo;time(&rawtime);timeinfo = localtime(&rawtime);//printf("\007The current date/原创 2012-08-07 17:41:07 · 2045 阅读 · 0 评论 -
localtime()函数返回的指针如何释放的?
localtime返回的指针是静态申请的,所以他一直存在与全局存储区,直到程序结束后才释放,所以他可以在函数调用之后继续使用。//大概是这样实现的 struct tm *localtime( const time_t *time ) { static struct tm _tm; ... return &_tm; }原创 2012-08-10 13:49:48 · 3577 阅读 · 2 评论 -
c/c++时间例子
#include #include int main () { time_t rawtime; struct tm * timeinfo; int year, month ,day; char * weekday[] = { "Sunday ", "Monda转载 2012-08-13 10:32:07 · 1003 阅读 · 0 评论 -
C 函数大全--去除了不经常使用的。
一。1. abs() 绝对值函数2. 注意,在unix/linux下gcc编译有math.h头文件的程序的时候,我们需要 gcc abc.c -lm ===> link -lm 表示math库。3. floor() ceil() 取当前值的前(下)后(上)整数;例如:15.5 floor() => 15 ceil() => 16 4. div() 求两个整数相原创 2012-08-24 10:32:43 · 1305 阅读 · 0 评论 -
看项目做笔记
1.2.#define _USE_32BIT_TIME_T ,定义了这个类型,那边time_t就是32位的原创 2014-05-22 15:36:42 · 824 阅读 · 0 评论