Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何声明C++;基于平台的变量类型? 我试图编写一些在Windows和Linux上都能工作的C++代码。我目前有: #ifdef WINDOWS HINSTANCE _handle; #else void* _handle; #endif_C++_Variables - Fatal编程技术网

如何声明C++;基于平台的变量类型? 我试图编写一些在Windows和Linux上都能工作的C++代码。我目前有: #ifdef WINDOWS HINSTANCE _handle; #else void* _handle; #endif

如何声明C++;基于平台的变量类型? 我试图编写一些在Windows和Linux上都能工作的C++代码。我目前有: #ifdef WINDOWS HINSTANCE _handle; #else void* _handle; #endif,c++,variables,C++,Variables,是否可以将类型声明为基于平台的条件类型,以便我可以执行以下操作: #ifdef WINDOWS //define TYPE = HINSTANCE; #else //define TYPE = void*; #endif TYPE _handle; #ifdef WINDOWS typedef HINSTANCE TYPE; #else typedef void* TYPE; #endif TYPE _handle; 你是说: #ifdef WINDOWS //defi

是否可以将类型声明为基于平台的条件类型,以便我可以执行以下操作:

#ifdef WINDOWS
  //define TYPE = HINSTANCE;
#else
  //define TYPE = void*;
#endif
TYPE _handle;
#ifdef WINDOWS
  typedef HINSTANCE TYPE;
#else
  typedef void* TYPE;
#endif

TYPE _handle;

你是说:

#ifdef WINDOWS
  //define TYPE = HINSTANCE;
#else
  //define TYPE = void*;
#endif
TYPE _handle;
#ifdef WINDOWS
  typedef HINSTANCE TYPE;
#else
  typedef void* TYPE;
#endif

TYPE _handle;
或者,如果您更喜欢使用(尽管在本文中没有区别):


您应该使用typedef关键字。如
typedef-HINSTANCE类型
使用TYPE=HINSTANCE
可能就是你想要的。Typedef是上个世纪的产物,使用'using'@pm100——在这种情况下,
使用
Typedef
更优越吗?语法更清晰,我想,我必须反复检查我的Typedef是否正确。当然,对于更复杂的事情,比如函数指针,这是一个很简单的问题。