我应该使用C或C++实现来返回变量类型的最大大小吗?

Elp*_*rto 1 c c++ standards limits char

从标准的角度来看,我应该使用C++ <limits>标题中的以下内容吗?

UCHAR_MAX这是c实现,或者 std::numeric_limits<unsigned char>::max()是C++实现.

结果在两个版本之间是等效的,但在这种情况下,我应该根据某些标准或可读性和可移植性选择实现.请注意,此实现必须是跨平台兼容的.我正在编写C++代码.

Jer*_*fin 9

如果您希望代码能够编译为C,那么您几乎需要使用<limits.h>.如果你正在编写C++,那么最好使用C++ <limits>头文件.后者允许您编写可在模板中使用的代码,这些模板无法与C头实际重复:

template <class T>
class mytemplate { 
    T x;
    void somefunc() { x = std::numeric_limits<T>::max(); } // or whatever...
};
Run Code Online (Sandbox Code Playgroud)