c/c++
small_well
这个作者很懒,什么都没留下…
展开
-
(转载)如何理解c和c++ 的复杂类型声明
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。 需要强调一下的是,复杂的C/C++声明转载 2009-08-01 10:54:00 · 412 阅读 · 0 评论 -
string.h中一些函数的实现
面试经常会考一些常用函数的实现.尤其是string.h中的函数.准备先!程序都是在gcc下面调试成功。 1 char* strcpy(char *to,const char *from); #include#include#include#include/*函数原型char *strcpy(char *to,const char *from); *功能:原创 2009-10-02 21:40:00 · 1082 阅读 · 1 评论 -
结构体、共用体、枚举
结构体、共用体、枚举:#includetypedef struct time{ int year; int month; int day;}TIME;typedef union stu{ char name[4]; int score;}STU;enum color{red,green,blue,yellow,white};原创 2009-10-27 16:47:00 · 384 阅读 · 0 评论 -
[转贴]变态的C自增
#if 0 变态的C表达式 前阵子与X-man逛书店,一边斜眼看着MM,一边盯着可以找到什么好书。突然,X-man以迅雷不及掩耳盗铃之势出招了:“俺们上学时,有道C语言题, 没有学生可以答对,我说你听听?!”。C语言,也算俺看家本领了,面对挑战不能畏惧,只有奋勇直前,“什么玩意儿,这么强?!”。只见X-man不慌不忙,慢慢悠悠地说道:“i初值等于1,加加i加上加加i等于i,最后i转载 2009-11-09 22:18:00 · 453 阅读 · 0 评论 -
由变态C自增所想到的
前面转载了[变态的C自增]这篇文章后,自己又总结了一下关键点:1、局部变量i,是保存在栈上的,没有拷贝!2、后缀++,和前缀++的求值时间的先后问题3、后缀++的使用甚至在"="赋值操作之后。但是,上述文章并没有对gcc和vc进行分析。在两个变量进行运算的时候,两者的代码运算的结果还是一致的。当多于两个变量运算的时候,结果就出现分歧了。 代码如下:#includeint原创 2009-11-18 16:11:00 · 831 阅读 · 1 评论 -
类型转换
整形提升(integral promotion):对于所有比int小的整形,包括char、signed char、unsigned char、short和unsigned short,如果该类型的所有可能的值都能包含在int内(什么情况下不包含在内?),它们就会被提升为int型,否则,它们将被提升为unsigned int。直白的讲,最小字节无精度损失且保证总是最小代价. 有原创 2009-12-02 20:22:00 · 462 阅读 · 0 评论 -
[转载]仅通过崩溃地址找出源代码的出错行
转载:http://www.luocong.com/articles/show_article.asp?Article_ID=29使用M$ 的 VC 和 MASM ,因此后面的部分只介绍如何在这两个编译器中实现,请读者自行融会贯通,掌握在别的编译器上使用的方法。首先必须生成程序的 MAP 文件。什么是 MAP 文件?简单地讲, MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示转载 2009-12-15 20:20:00 · 837 阅读 · 0 评论