作者lazybones (懒)
看板C_and_CPP
标题[问题] cAlternateFileName是empty的情况
时间Mon Nov 2 18:28:55 2009
我在MSDN看到以下内容
If a file has a long file name, the complete name appears in the cFileName
field, and the 8.3 format truncated version of the name appears in the
cAlternateFileName field. Otherwise,
cAlternateFileName is empty.
不过我用以下的语法去做判断时 会出现非预期的情形
if(FindFileData.cAlternateFileName != NULL)
printf("FileName Too Long\n");
情形就是不管cAlternateFileName是不是empty
他都会印出printf()的内容
请问版友 是我哪边弄错了?又必须怎麽改进 谢谢!
--
★
╔╮ ╭═╦╮╭═╦╗╮ ╮╔══╮╭═╦╮╮ ╔╮╔══╮╭══╮
╠╣ ╠═╬╣╭╬╩╯╰╦╦╯╠═╦╮║ ╠╣║║╠╣╠╣ ╰═╦╮
╠╣ ╭║ ╠╣║╰╔╗ ╠╣ ║ ╠╣║ ╠╣║╰╠╣║╰╔╗║ ╠╣
╰╩═╯╰ ╰╝╚═╩╯ ╰╝ ╚═╩╯╰═╩╯╰ ╰╝╚═╩╯╰═╩╯
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.211.0.80
1F:推 VictorTom:那个 empty, 是指 "", 还是指 NULL ?? 11/02 18:54
2F:→ VictorTom:其实您也可以试着把它们字串全印出来看一遍就知道了XD 11/02 18:54
3F:→ lazybones:我试过 若是empty 印出来是"" 11/03 09:25
4F:推 VictorTom:所以是""不是NULL啊, 那你不能用 != NULL来判断啊@_@" 11/03 09:40
5F:→ VictorTom:如果它只是普通的char[], 那也许就用strcmp(), 或者更简 11/03 09:40
6F:→ VictorTom:单判断第一个char是不是'\0'吧:) 11/03 09:40
7F:→ lazybones:或许我说的不够清楚...这些我都尝试过了..囧> 11/03 09:49
8F:→ lazybones:结果都一样... 11/03 09:49
9F:→ lazybones:所以想说是我哪边理解错了...Orz 11/03 09:50
10F:→ lazybones:v谢谢 11/03 09:50
11F:推 VictorTom:Err~NULL与""(或者char[0]=='\0')都不行!?小弟也晕了Orz 11/03 09:53
12F:→ lazybones:哈 我再想想看 谢谢喔! 11/03 09:57