2016-01-20 24 views
-2

参考http://en.cppreference.com/w/cpp/string/byte/strcpystrcpy带3个参数,参考只显示2

strcpy有2个参数和我分析的代码有3个参数。是否有另外一个参考可以说明这段代码发生了什么?我假设它设置了可变长度。这是一个构造函数。

HwCounterBase::HwCounterBase(const char* pName) 
{ 
    _enabled = false; 
    _value = 0; 
    if (pName != NULL) 
     STRCPY(_pName, COUNTER_NAME_LENGTH, pName); 
    else 
     _pName[0] = 0; 
    _pLabel[0] = 0; 
} 
+4

'STRCPY'不是'strcpy'。看起来像一个宏。看看你是否能找到它的定义。 –

回答

3

STRCPYstrcpy,如C/C++是大小写敏感!可能STRCPY是一个预处理宏包装strncpy

#define STRCPY(dst, size, src) strncpy(dst, src, size) 

你应该问问你的IDE在哪里定义STRCPY

+3

希望它不包裹函数strncpy –

+0

C/C++不是一种语言。这个问题被标记为C++,而不是C ..如果你觉得它是相关的,你可以提到C#是区分大小写的。 – Default

+0

@default C++集成了C具有和OP试图使用C函数,以便IMO说C/C++是相关的几乎一切。 – xboi209