
C/C++
文章平均质量分 69
fancylea
本博客搬迁至http://www.macode.net/
展开
-
今天遇到的一个题目
int main() ...{ int s[5]=...{6,7,8,9,10}; int * p; p=s; *(s+2)+=2; couts(s+2)endl; return 0; }上面函数打印的结果是什么?分析:*(s+2) += 2;和下面的语句一样首先 *(s+2) = *(s+2) + 2其次 要理解*原创 2006-11-28 23:12:00 · 935 阅读 · 0 评论 -
BOOL, bool, warning C4800
不知道其他人遇到过如下VC中如下error没有:warning C4800: int : forcing value to bool true or false (performance warning)比如我写一个函数,出于某种原因我要返回C++标准类型bool,但是很多windows api都是BOOL的,编译的时候编译器默认warning设置会出现上述warning:原创 2010-05-04 23:12:00 · 3875 阅读 · 3 评论 -
GCC内联汇编基础
GCC内联汇编基础 (为了方便阅读,做成了pdf 格式,有目录: http://download.youkuaiyun.com/source/903658) GCC内联汇编基础 Sandeep.S (原作者)v0.1, 01 March 2003. 翻译:fancylea 版权所有,禁止用作商业用途。 http://blog.youkuaiyun.com/fancylea翻译 2008-09-07 12:49:00 · 1768 阅读 · 0 评论 -
C++ vptr vtbl (C++虚表指针,虚函数表,虚函数的实现)很多人都喜欢问这个,写下吧。
#include class A { virtual void a()=0; virtual void b()=0;};class A1 : public A { virtual void a(){ std::cout virtual void b(){ std::cout};class A2 : public A { virtual void a(){ std::cout转载 2010-03-16 14:31:00 · 8456 阅读 · 0 评论 -
C语言中位域(bit struct)和#pragma pack(n)指令对其影响。
刚才看INTERNETWORKING with TCP/IP Volume 3的时候看到下面代码struct rtp...{ unsigned int rtp_cc:4....};有点奇怪,不知道这个unsigned int rtp_cc:4是什么意思,照例google了下得到如下信息:有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个原创 2008-01-15 23:27:00 · 7252 阅读 · 0 评论 -
C/C++动态分配二维数组(在堆上分配二维数组内存)
问题:如何动态非配一个二维数组内存,得到一个如char[i][j]数组,其中a,b都是变量。 解决方法:#include #include int main(){ int i = 10; int j = 20; //C语言可以这样: char** a = (char**)( malloc( i*sizeof(cha原创 2009-06-13 17:44:00 · 2385 阅读 · 0 评论 -
C/C++ for while性能简单分析
今天看一个文章想成为嵌入式程序员应知道的0x10个基本问题>其中有一个十这样写的: 4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?这个问题用几个解决方案。我首选的方案是:while(1){} 一些程序员更喜欢如下方案:for(;;){} 这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这原创 2009-06-09 18:12:00 · 2268 阅读 · 2 评论 -
今天遇到的笔试题
1) 共有五个求sizeof的值的题目(其他三个都是常见面试题目都能见到的,写下面两个有点容易忽略的):char *p = "hello" sizeof(p) =?char p[] = "hello" sizeof(p) =?2) 把一个数字字符串改成数字,如"12345" 改成数字1234,不可以使用C库函数3) 用最高效率方法求 1-2+3-4+5...+n的值。4) 程序改错和写成原创 2009-07-27 22:20:00 · 1021 阅读 · 0 评论 -
关于namespace或global作用域内变量和常量以及static修饰符
转载自:http://www.cppblog.com/bidepan2023/archive/2008/01/22/41620.html我们的讨论基于下列准则:1. 只限于namespace或global作用域的变量常量。函数内或Class内的不做讨论。2. 如果是C程序,以下涉及匿名namespace处都该以static取代之。(虽然C++也可以用static,但更好的方式是匿名namespac转载 2008-12-01 23:43:00 · 1400 阅读 · 0 评论 -
一道c++面试题
float a = 1.0f;cout cout cout float b = 0.0f;cout cout cout 输出结果是: 1 1065353216 false 0 0 true 为什么是这种结果啊?(int)a实际上是以浮点数a为参数构造了一个整型数,该整数转载 2007-03-16 09:29:00 · 868 阅读 · 0 评论 -
论函数调用约定
论函数调用约定在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个转载 2007-03-01 09:45:00 · 916 阅读 · 0 评论 -
K&R C vs ANSI C (error C2143: syntax error : missing ';' before 'type' in Visual Studio 2008)
今天偶然写了下面的程序(原来我写的程序不一样,下面的只是为了把问题简化)void foo(){ int p = 0; if ( p == 0 ) { int i = 0; } int a;} int main(){ foo();} 不幸的是偶然将这个文件保存成了test.c然后编译的时原创 2009-06-10 10:56:00 · 6645 阅读 · 1 评论