C/C++程序员两年历程 (1)
不知不觉已经工作两年了,辞去了原来的工作,又跑回了我上学的地方。今天跑去一家室友介绍的公司面试。问得问题挺简单,但我答的却真不怎么地啊。回来又研究了一下,发现这些问题我应该都理解啊,怎么到别人问起的时候就全忘了一般呢。想想了发现还是学的不到位。不禁又想起了这么多年来,我都学到了什么东西呢。
大学时的啥都不懂,大一就知道上课,晚自习,学校机房(玩游戏,呵呵,魔兽就是从这时开始玩的,记得我跟我哥们都是新手的时候,打一个初级电脑,两个人用了2小时,最后扎的满屏幕全是箭塔)。大二时整个大环境终于将我领上了大学的正途,去网吧玩游戏。从此只是在考试之前学习。大三网游了一年,结果大三毕业六级没过,保研失败。到了大四,想想反正保研没过,有可能读研这条路就不适合我,所以就直接选择了工作。不过还挺顺利,一下子就找着了,顺利进入了东软。
我们当时进去的时候属于特招的那种,就是感觉你很牛,实际上屁也不是的那种。其他人我不知道,反正我进去的时候连用C语言写Hello World都不会,VC是啥我还没听说过,大学只用TC。不过经过两个月培训下来,我也会写代码了,真不简单。不过当时完成的作业都是抄的,因为基础很差,根本写不出能编译过的代码。
2007年的上半年,公司要求去公司做毕业设计,其实就是想让我们早点能够替他干活。所以从家里出发,直接到了沈阳。一开始过去有个屁考试,说什么基础好的人可以直接进部门。当然,由于我的实力有限,不知道当时考了多少分,所以还需要再培训。这三个月的培训收获很大,也建立了我在计算机上的自信。因为一进去,我发现大家都是很我一样的,如果你之前接触了点计算机知识,那不得了,你就是大牛。。。我由于之前有了能够用C语言写Hello World的基础,所以给大家的感觉就是这个人挺厉害,这给我就平添了几分自信。有了自信,就连冒泡这样的高级排序算法我都能独立的写出来了。就这样三个月过去了,我的编程的第一个作品出来了,毕业设计,真的是我们自己写的,而且做出来的东西真的还不错,我现在还这么认为呢。。。
通过培训,我发现编程原来也不是很难嘛,大家都会的嘛。真正进入到公司开始工作了,头两个月就是学习,学习什么呢?一堆代码,文档,以及培训资料。当时才发现原来催眠最好的武器不是高中老师的讲课声,而是那满屏的代码。看一个小时的代码,有三分之二的时间是在打瞌睡。我学啊学啊,终于来了个Bug,我可以查Bug了
相关文档:
经常需要在程序中将远程传来的字节流进行结构化,或者将结构化的数据变成字节流传给远程主机。在C/C++程序中,结构化数据通常用结构体来组织,结构体也能够方便的转换为字节流,因此结构化的数据传输本不该成为问题,但在VC或GCC的默认设置下编译出的程序,却有一个值得注意的问题——结构体的对齐。 ......
面试时被问到过,不甚明了,网上百度一下,整合了两个仁兄的文章,如下。:-)
时常在cpp的代码之中看到这样的代码:
#ifdef __cplusplus //c++编译环境中才会定义__cplusplus (plus就是"+"的意思)
extern "C" { //告诉编译器下面的函数是c语言函数(因为c++和c语言对函数的编译转换不一样,主要是c++中存在重载)
#en ......
以前学生时代的时候就有遇到过这个问题,不过没去深究;
现在也是老问题,其实很简单,就是为了防止#include两个头文件的时候,把第一个头文件的最后一行和 第二个头文件的第一行拼接成一行;呵呵,其实很多问题都很简单,而且很隐蔽,只是我们很多时候没去注意! ......
原文链接:http://blog.csdn.net/sytstarac/archive/2009/08/05/4411519.aspx
编译器:vc++6.0(因为此种实现依赖编译器处理)
此处只简要叙述一下机制。并附部分关键指令序列。
准备:
1,关于EBP:称做栈基址指针。为什么这样说呢?我们先来看看函数调用的过程:
参数从右到左压栈。
call指令执行,该指令将导致EIP压 ......