对于运行效率的问题,首先建议使用有优化功能的编译器,其次,C语言效率低也可能是因为C语言及其标准库本身的针对性不强,像一些科学计算软件,定义一个向量(数组)、一个函数,然后通过几行代码,就可以把函数的图像做出来,而这些东西都是经过人家开发者精心优化的了,其执行效率高于初学者用C语言写出来的也不是完全没有可能。
关于代码优化的问题,《C专家编程》、《C陷阱与缺陷》、《C和指针》的作者的看法不尽相同,《C专家编程》的作者认为,对于细节方面的代码优化,人工优化常常比不过好的优化器进行优化,而人工优化又常常会削弱代码的可靠性、可读性和可移植性,所以优化要着眼于大局,《C陷阱与缺陷》认为优化器靠不住,细节上还得靠人工进行优化,《C和指针》的作者对一个数组循环的优化举出了一段复制数组的代码(P145),并列出将其直接转为汇编后的结果,并进行了一系列的改进,然后给出了关于效率与可读性、可靠性等的总结(P149),个人感觉这个是最有参考价值的,楼主可以参考参考。
如果在学习时觉得没的可写,那么,可以做书后习题,如果自己看的书没有书后习题,就找一些有书后习题的书,找编程题,按上面的要求写,也可以有选择性地去做。
如果C语言基础学得差不多了,可以看一些老手经验类的书,如《C专家编程》、《C陷阱与缺陷》、《C和指针》,这些书一般不需要太多的练习,只需要跟着书上的习题(如果有)做即可。也可以去找找其它的库,比如实现图形界面的GTK等等。
忘了前面的内容属于正常现象,如果没有找这方面的工作的意向,只要在使用时能够把需要的东西拿出来用即可。