OpenGL小结12箴言(2)

1:请记住,由窗口名可以得到HWND(如FindWindow()函数),由HWND可以得到HDC(如GetDC()函数),由HDC就可以画图了,必须注意的是,这两个东西最好是全局变量。

2:请使用sprintf系列函数来format字符串,示例如下:

      char  buffer[200], s[] = "computer", c = 'l';

      int   i = 35, j;

      float fp = 1.7320534f;

      j=sprintf(buffer,"String:%s/nCharacter:%c/nInteger:%d/nReal:%f/n",s,c,i,fp);

3:请注意汉字于字符混合在一起后的处理,若处理不当,后果可不怎么好,往往容易出现乱码,一般乱码就是因为汉字错位了(错了1位)。示例如下:

      char ch[10]="abc你好啊";

      for (int i(0);i<10;++i)

      {

           cout<<int(ch[i])<<endl;

      }

可以发现一般英文字符为整数,汉字的一半为负数,这里仅为参考。

请使用一个计数器来记录中文字符数,如下:

           GLuint count=0;

           for(int i(0);i<24;++i)

                 if(buf[i]<0)++count;

4:若是VS作为编译器,请每隔一段时间(如重复编译20次以后)清理一下工程中的文件,将能删的全部删除,这样可以保证编译器能正确识别类等信息。

5:请尽量通过添加函数来解决问题,而不是添加变量。

6:请注意文件保存为.txt格式时的空格键问题。

7:我们对外是使用方法(函数)来进行交流,对内则使用数据,程序的执行过程应该是函数过程,而不应该夹杂数据。

8extern关键字:适用于文件作用域的全局变量,(extern声明与定义,或在其他文件定义,注意只能定义一次。)

   static  关键字:使用于文件作用域的全局变量,也可为块或函数中的局部变量

      register 关键字:用于指定存放在高速寄存器中的变量

      auto  关键字:块作用域或函数作用域中(缺省)

9:请尽量避免通过全局变量使用隐式耦合度,请通过参数传递使用显式耦合度,这样可以只研究函数头就可以理解程序的数据流,而不需要研究函数代码。

10:请不要为了效率问题而随意使用指针或引用参数,从软件质量角度,那样的代码不是好代码,那样的函数不是好函数。请从实际出发!

11:请仔细考虑函数的职责分配,尽量降低耦合度。

12:数据封装的真正意义在于程序组成部分的可读性和独立性,而不仅仅是保护数据!

 

/12箴言,至此。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值