[随想]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:
相关文档:
请运行下面的代码,观察结果,有人说怎么是死循环,你同意吗?为什么?
#include
<stdio.h>
int
main()
{
int
i = 0;
int
name[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
......
今天无事,在论坛上一直看贴子,很少动手实践,今天试着写了一个读取源程序代码行数的例子:
现在的代码如下,可能还有不完善的地方,以后再改进:
#include <stdio.h>
#define CHARCOUNT 255
#define CON 6 /*单行注释最少的时候*/
int realLength = 0;
/*
* function name: strCount
* function : count ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. ldexp函数
ldexp函数的功能是计算value*2的幂,其用法为:double ldexp(double value, int exp);程序实例如下:
......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. malloc函数
malloc函数的功能是内存分配函数,其用法为:void *malloc(unsigned size);程序实例如下:
#include <stdio.h>
#i ......
C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。下面小编和大家分享下C语言中的函数。
1. parsfnm函数
parsfnm函数的功能是分析文件名,其用法为:char *parsfnm (char *cmdline, struct fcb *fcbptr, ......