[随想]C/C++程序员
刚刚看过这篇《30 years of C》,回想了这几年的学习历程。
在大学里,我学习的第一门程序设计语言是C,但花时间最多的还是C++。大约五年前,开始啃《 C++编程思想》两卷本,用Dev-cpp在机器练习着书上的一个个例子程序,之后又学习了面向对象编程、STL、模板。凭着这些纸上谈兵的经历,参加了数学建模比赛,写了几个数值计算与运筹学的小程序,小有成就感。再之后参加ACM程序设计比赛,这期间受到ACM代表队的老师和同学的影响,开始接触Unix并接受自由/开源软件的思想。但是在参赛期间,我发现学会了C++、STL这些还是不能把那些问题搞定。然后总结教训,可能是基础不牢、内功不够,于是开始返工,重学C和数据结构。买了一盒A4打印纸,把纸对折开来练习在纸上用C写代码。今天,当我看到《30 years of C》里的这一句“ I just read the book cover-to-cover and wrote out the exercises on paper. ”很有共鸣。纸上写代码颇有写散文的感觉,当然也是形散而神不散的。Knuth早就说过类似的话,编写程序的过程能给人以美的享受,就像写诗作曲一样。我想他老人家应该也有过纸上写程序的经历。言归正传,写完了那一盒A4纸之后,比较顺序地考上研。考完研在家做UVA上的题目就感到轻松多了,从那时起信奉格言"No magic,Just basic“。读研之前,加入一个团队做了四个多月的MFC编程,那几个月的时间也让我明白了面向对象与软件架构的重要性,当时还憧憬在读研期间在这两方面打下基础。没想到因缘际会,上研后呆的实验室里有几台大机器,跑的是Solaris/Linux之类的系统,所以研究生阶段的大部分时间是在Unix系统上用C编码,这样也好,因为我本科毕业前就成为了开源信徒,在Unix系统里编程正好能无限满足精神需求。研究生毕业前夕,发觉Unix编程的功底还不够(尤其是网络编程),无奈之下还是凭着前几年积累的C++底子找到了工作。七月毕业后立即到岗工作,到现在四个月时间,又转换了开发环境,现在Windows平台上用C++编程。经过这一波三折,最终还是成为一名Windows C++程序员。今天看到部门的一些学习资料和这份文档《Google C++ Style Guide》,突然感到自己在C++方面还只是入门级水平。
五年过去了,算是学到了一些程序设计的基本知识,接下来还得继续学习与实践,也继续享受着编程带来的快乐。
PS:
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
5、#define宏定义。宏只是简单的文本替换,很容易引起歧义。
#include <stdio.h>
#define CONS(a,b) (int)(a##e##b)
#define STR(s) #s
int main()
{
printf(STR(vck));
printf("\n");
printf("%d\n",CONS(2,3));
return 0; ......
今天无事,在论坛上一直看贴子,很少动手实践,今天试着写了一个读取源程序代码行数的例子:
现在的代码如下,可能还有不完善的地方,以后再改进:
#include <stdio.h>
#define CHARCOUNT 255
#define CON 6 /*单行注释最少的时候*/
int realLength = 0;
/*
* function name: strCount
* function : count ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. normvideo函数
malloc函数的功能是选择正常亮度字符,其用法为:void normvideo(void);程序实例如下:
#include < ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. qsort函数
qsort函数的功能是使用快速排序例程进行排序,其用法为:void qsort(void *base, int nelem, int width, int (*fcmp)());程 ......