
C/C++
星辉斑斓
---------
展开
-
函数指针
函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢? 如果我们有一个int test(int a)的函数,那么,它的地址就是函数的名字,这一点如同数组一样,数组的名字就是数组的起始地址。 定义一个指向函数的指针用如下的形式,以上面的test()为例: int (*fp)(int a);//这里就定义了一个指向函数的指针 函数指针不能绝对不能指向转载 2009-03-20 12:11:00 · 777 阅读 · 0 评论 -
再谈C语言位域
http://tonybai.com/2013/05/21/talk-about-bitfield-in-c-again/我在日常工作中使用C语言中的位域(bit field)的场景甚少,原因大致有二:* 一直从事于服务器后端应用的开发,现在的服务器的内存容量已经达到了数十G的水平,我们一般不需要为节省几个字节而使用内存布局更加紧凑的位域。* 结构体中位域的实现转载 2013-07-18 16:06:11 · 1163 阅读 · 0 评论 -
浮点数在计算机中存储方式(转)
http://blog.youkuaiyun.com/wuna66320/article/details/1691734作者: jillzhang 联系方式:jillzhang@126.com 本文为原创,转载请保留出处以及作者, 谢谢 C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32转载 2013-04-09 17:21:03 · 685 阅读 · 0 评论 -
用gcc编译c++
其实作者废话一堆,关键就是要么g++ a.cpp要么gcc a.cpp -lstdc++gcc和g++都是GNU(组织)的一个编译器。 误区一:gcc只能编译c代码,g++只能编译c++代码 两者都可以,但是请注意: 1.后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c+转载 2012-06-01 16:45:52 · 702 阅读 · 0 评论 -
C 可变参数
C语言中有一种长度不确定的参数,形如:"…",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。 原型: int printf( const char *format [, argument]... ); 使用例: printf("Enjoy yourself everyday!/n"); printf("The转载 2009-12-13 17:24:00 · 492 阅读 · 0 评论 -
Couldn't reserve space for cygwin's heap, Win32 error 487
一开始,装上netbeans时,要求编译器,于是,我选用了codeblocks的MingW的gcc,g++编译器。想用它的make,但是显示不支持MingW的make。于是,我试了一下别的make.exe(似乎不能在有空格的路径下,能否放在中文路径名下倒未曾考证),这时make倒是能用,不过总提示些问题。提示如下:AllocationBase 0×0, BaseAddre转载 2009-11-19 16:21:00 · 6021 阅读 · 0 评论 -
关于VC的“Warning: skipping non-radio button in group.
其实这个没有什么,但手头的一个项目这个warning频繁的输出影响了正常的trace。其实要去掉也很简单,在资源窗口中按Ctrl+D看tab的顺序,将radio button后面得的第一个不是radio button倥件的group属性设为true就可以了。原创 2009-10-12 17:30:00 · 1319 阅读 · 1 评论 -
VS2008 编译 DirectX SDK BaseClasses 时的问题
一. 第一步,设置INCLUDE及LIB目录在把dxsdk中提供的baseclass编译通过后,用四种方式编译,会分别生成四个lib,一般只用到了其中的Debug和Release文件,在tool|option|vc++directories中包含的files中设置如下。这里需要加入得include files有四种:D:/SDK/DXSDK/Include转载 2009-09-25 10:15:00 · 3733 阅读 · 0 评论 -
原码、反码、补码
闲扯原码、反码、补码 相信大家看到这个标题都不屑一顾,因为在任何一本计算机基础知识书的第一章都有他们的解释,但是在书上我们只能找到一些简单的定义,没次看过之后不久就忘了。最近论坛里有人问起这些概念,看到很多人的回复是以前看过现在忘了去看看某某书之类,很少有给出一个合理的解释。于是本人就开始思考(虽然上帝会发笑,我还是要思考。),于是得出了以下的结论。转载 2009-07-11 21:08:00 · 457 阅读 · 0 评论 -
apue 中建议性记录锁和强制性记录锁的描述
书中描述:考虑数据库存取例程序。如果该库中所有函数都以一致的方法处理记录锁,则称使用这些函数存取数据库的任何进程集为合作进程( cooperatingpro c e ss)。如果这些函数是唯一的用来存取数据库的函数,那么它们使用建议性锁是可行的。但是建议性锁并不能阻止对数据库文件有写许可权的任何其他进程写数据库文件。不使用协同一致的方法(数据库存取例程库)来存取数据库的进程是一个非原创 2009-07-02 16:04:00 · 2157 阅读 · 2 评论 -
关于apue中 open函数
open函数 #include fcntl.h>int open(const char *pathname,int oflag,```); //仅当open创建文件时才使用第三个参数oflag参数主要有: O_RDONLY 只读 O_W原创 2009-06-28 23:13:00 · 744 阅读 · 0 评论 -
zz undefined reference to 'pthread_create'问题解决
由于是Linux新手,所以现在才开始接触线程编程,照着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to pthread_createundefined reference to pthread_join问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静转载 2009-06-15 18:27:00 · 588 阅读 · 0 评论 -
zz C语言的5种存储类以及关键字volatile、restrict
《C Primer Plus》读到12章,我的C语言复习进展的挺不错。这一章介绍存储类、连接和内存管理,可以说是重中之重。C的5种存储类:自动——在一个代码块内(或在一个函数头部作为参量)声明的变量,无论有没有存储类修饰符auton,都属于自动存储类。该类具有自动存储时期、代码块的作用域和空链接(no linkage),如未初始化,它的值是不确定的(java要求局部变量必须初始化)转载 2009-06-13 17:48:00 · 699 阅读 · 0 评论 -
typedef的四个用途和两个陷阱
typedef的四个用途和两个陷阱定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; // 可行,转载 2009-08-04 18:08:00 · 456 阅读 · 0 评论 -
C/C++ 宏
众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有一个很大的作用,就是自动为我们产生代码。如果说模板可以为我们产生各种型别的代码(型别替换),那么宏其实可以为我们在符号上产生新的代码(即符号替换、增加)。关于宏的一些语法问题,可以在google上找到。相信我,你对于宏的了解绝对没你想象的那么多。如果你还不知道#和##,也不知道pres转载 2009-07-26 10:38:00 · 894 阅读 · 2 评论 -
C数组和指针相关的问题
blog 搬迁中 新地址 http://guanxin.info两个面试题面试时发现很多公司喜欢考一些数组和指针相关的问题。比较常见的是下面这个: /* main.c */int a[4] = {1, 2, 3, 4};extern void foo();int main(){ foo(); return 0; }/* foo.c */#include<stdio.原创 2016-06-06 17:34:12 · 532 阅读 · 0 评论