作者shunchao (过客罢了)
看板C_and_CPP
标题[问题] 请问算 const string 长度比较快的方法
时间Mon Feb 16 17:57:14 2009
例如 使用gcc
#define AAA "AAA"
strlen(AAA) = 3
但是
sizeof(AAA) = 4
所以我之前的写法常常要改成 (sizeof(AAA) -1) 才能表现出真正长度
但是这样还是会多运算一次减法
gcc 有没有什麽比较快的解法可以直接算出 constant string 的长度
在此先谢谢回答:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.89.50
1F:推 HudsonE:#define AAALEN 3 02/16 18:07
2F:推 ledia:sizeof(AAA)-1 应该不会多运算一次吧 02/16 18:10
3F:推 HudsonE:也对... 聪明的 compiler 应该会直接用 3 代掉 02/16 18:13
4F:→ adrianshum:其实, 这只能算 string literal 的长度, 而不是 const 02/16 18:14
5F:→ adrianshum:string 的长度. 02/16 18:14
6F:推 gba356:等等..sizeof(AAA) == 4 吧?後面的 '\0' 呀? 02/16 18:22
7F:推 stonehomelaa:sizeof(AAA) -1 编译时候就会替换成3了 02/16 18:27
8F:→ shunchao:刚刚compile 然後gdb disassemble 一下 02/16 19:56
9F:→ shunchao:的确 sizeof(AAA) - 1 会直接代换3 谢谢大家的回答 02/16 19:57