关于源码的优化

Home Home
引用 | 编辑 z1022001
2011-01-20 12:33
楼主
推文 x0
想请问一下
new

new const
两者在效能上有差吗?

如果有差的话
请问:

复制程式
#define A 0
#define B 1
#define C 2

#define MAX 3

new const name[MAX][] = {
    "name_A", "name_B", "name_C"
{
然后
复制程式
new i = 0
while( i < MAX )
{
    client_print( 0, print_chat, "[%s]", name[i] )
    i++
}
输出为:
[name_A]
[name_B]
[name_C]

该怎么改写,才能在只改变 A, B, C 的define的值
就让输出 NAME 字串的顺序跟着改变?

献花 x0
引用 | 编辑 q7291172
2011-01-20 15:28
1楼
  
什么意思啊?

献花 x0
引用 | 编辑 a7811311622
2011-01-20 17:21
2楼
  
下面是引用 z1022001 于 2011-01-20 12:33 发表的 关于源码的优化: 到引言文
想请问一下
new

new const
两者在效能上有差吗?

如果有差的话
请问:

复制程式
 
#define A 0 
#define B 1 
#define C 2 

#define MAX 3 

new const name[MAX][] = { 
  "name_A", "name_B", "name_C" 
{ 

然后
复制程式
 
new i = 0 
while( i < MAX ) 
{ 
  client_print( 0, print_chat, "[%s]", name[i] ) 
  i++ 
} 
输出为: 
[name_A] 
[name_B] 
[name_C] 


该怎么改写,才能在只改变 A, B, C 的define的值
就让输出 NAME 字串的顺序跟着改变?


呃…我说…「define」和「const」都是「定值」吧…
既然想变化就改成宣告「变数」不就得了…?
表情 表情 表情

献花 x0
引用 | 编辑 z1022001
2011-01-20 18:07
3楼
  
下面是引用 a7811311622 于 2011-01-20 17:21 发表的 : 到引言文
 

呃…我说…「define」和「const」都是「定值」吧…
既然想变化就改成宣告「变数」不就得了…?
表情 表情 表情

恩...所以我才会先问const有没有差
如果没差的话,就直接用new就好了...

献花 x0
引用 | 编辑 a7811311622
2011-01-20 19:05
4楼
  
下面是引用 z1022001 于 2011-01-20 18:07 发表的 : 到引言文


恩...所以我才会先问const有没有差
如果没差的话,就直接用new就好了...

效能有没有差异我是没查过…
不过会用「const」主要是希望指定的内容是不会被改变的…例如:
复制程式
new const weapon_classname[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" }
「weapon_classname」里的武器实体名称在阵列内的顺序是有对照该武器ID值的…
你总不会希望「weapon_classname」里的任何一个字串中途变成其他内容吧…
这样有可能造成武器ID值和该位置的武器实体名称对照不上…
更惨的话武器ID值对应位置是无意义字串或是空字串…

献花 x1