码迷,mamicode.com
首页 > 编程语言 > 详细

第一篇---------c语言的一些基础零碎知识所思所想

时间:2016-01-19 01:42:21      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

       首先,我的博客地址是http://www.cnblogs.com/naiwenmoer/,这也是我第一篇博客,以前没想过写博客,现在有幸加入这个大神遍地飞的园子,还请各位大神多多指教了!  

        c语言作为经典语言,这里不再多说了.咱从基础一起探讨吧!

        一. 定义一个整型,如果作为局部变量,没有初始化的情况下,它是一个随机的值的,一般情况下输出会是0,但这个0是作为垃圾值的;而如果作为全局变量,没有初始化的情况下,它的值是0.    

      二.我们都知道,static是用于声明一个内部全局变量,在使用static的时候,并不会在内存中重新开辟一块存储空间的,那么它的优越性是时候发挥作用了,如果当某个方法的调用频率非常高,而该方法中有写变量的值是固定不变的,如果我们使用static来修饰该变量,让该变量只开辟一次存储空间,在运行过程中就可以提高程序的效率和性能了.

         三.带参数的宏定义一些细节.如果说我们使用一个带参数的宏定义去做一些简单的运算,少量的代码可能显示不出他的优越性,但在成千上万行代码中,能为整个软件程序运行提高不少性能勒!                  例如一个简单的例子,int a = 10;int b = 20;计算结果可以int res = a + b;使用宏定义应该这样的:在main函数外面先#define SUM(v1,v2)(v1+v2)            在main函数里面直接实现    int res = SUM(a,b);    看似没有区别,从运行原理来看,宏定义让程序运行的直接拿到的是(10 + 20)去运算,而没有使用宏定义要先让a和b分别赋值后再运算,是多走了一步"弯路"的.

         四.提到宏,应该会想到typedef,define和typedef中有一些细节,可能有些朋友不会注意到,如果说要给指针类型变量"起别名",当使用define的时候会有什么"意外"发生呢?   好,我先来一个#defiine MY_STRING char *                 在main函数里面调用MY_STRING name1,name2;   会出现什么后果呢,结果告诉你,会有bug的. 原因是因为MY_STRING name1,name2====char *name1;char name2;  我个人通俗点说,就是name2"吃不到*",作为指针变量,没有*运行当然会报错了!

         好了!时候不早了,就这样了,有空想到什么就再写点什么了!有不足之处还望各位看官指出,感激不尽!

 

 


 

 

第一篇---------c语言的一些基础零碎知识所思所想

标签:

原文地址:http://www.cnblogs.com/naiwenmoer/p/5140940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!