为什么我看到一些代码使用CStrings声明不同.
有些使用这种格式
char a_c_string [];
而其他人则使用
CString another_c_string;
有差异吗我在CStrings中找到的所有参考资料都是像在第一个例子中所说的一样,我只是看到它在另一种方式在人们提供的例子的论坛等上完成.
解决方法
CString既不是C也不是C类型.
It appears to be a Microsoft invention这本质上是std :: string的替代品:
CString
objects can grow as a result of concatenation operations.CString
objects follow “value semantics.” Think of aCString
object as an actual string,not as a pointer to a string.- You can freely substitute
CString
objects forconst char*
andLPCTSTR
function arguments.- A conversion operator gives direct access to the string’s characters as a read-only array of characters (a C-style string).
我建议忽略它,所以:
(a)人们知道你在说什么;
(b)你的代码是便携式的;
(c)你正在写C,每个人都可以根据世界公认的ISO C标准来合理化,许多人花了许多小时争论这个明确的目的(你知道吗,而不是一些房间在一个公司的办公室).
只有当您使用Microsoft Visual C进行编程时,这将是可用的,这实际上是限制.