有没有一种方法可以定义一个函数来修改C中的参数?
我有一些代码需要为windows和linux调用sleep 为了避免在任何有睡眠的地方放置ifdef,我做了以下操作有没有一种方法可以定义一个函数来修改C中的参数?,c,typedef,C,Typedef,我有一些代码需要为windows和linux调用sleep 为了避免在任何有睡眠的地方放置ifdef,我做了以下操作 typedef Sleep sleep 问题是windows只需几微秒就可以进入睡眠状态,而linux只需几秒钟就可以进入睡眠状态。是否有一种方法可以执行类似于此伪代码的操作 typedef Sleep(x) sleep(x/1000) 否。typedef为类型定义新名称 如果您想避免到处使用ifdef,可以创建一个包装函数,以毫秒为参数,然后在内部使用ifdef以及从毫秒到
typedef Sleep sleep
问题是windows只需几微秒就可以进入睡眠状态,而linux只需几秒钟就可以进入睡眠状态。是否有一种方法可以执行类似于此伪代码的操作
typedef Sleep(x) sleep(x/1000)
否。typedef为类型定义新名称
如果您想避免到处使用ifdef,可以创建一个包装函数,以毫秒为参数,然后在内部使用ifdef以及从毫秒到秒的任何必要转换。否。typedef为类型定义了一个新名称
如果您想避免到处使用ifdef,可以创建一个以毫秒为参数的包装函数,然后在内部创建一个ifdef以及从毫秒到秒的任何必要转换。否,您不能为此使用typedef 但是,您可以编写以下宏:
现在,在您的代码中,您可以简单地调用MY_SLEEP_MACRO 5000;要在两种平台上等待5秒钟。否,您不能为此目的使用typedef 但是,您可以编写以下宏:
现在,在您的代码中,您可以简单地调用MY_SLEEP_MACRO 5000;在两种平台上等待5秒。typedef只是给类型起一个短名称,它不会改变数据。您可能需要一个宏。typedef只是给类型起一个短名称,它不会改变数据。您可能需要一个宏。实际上,名称不正确;typedef不定义新类型。它为类型定义了一个新名称。给定typedef任何foo;typedef Anything bar;,foo和bar将是完全相同的类型。相反,对于struct foo{Anything x;}和struct bar{Anything x;},struct foo和struct bar是不同的类型,并且不兼容;typedef不定义新类型。它为类型定义了一个新名称。给定typedef任何foo;typedef Anything bar;,foo和bar将是完全相同的类型。相反,对于struct foo{Anything x;}和struct bar{Anything x;},struct foo和struct bar是不同的类型,并且不兼容。
#if defined( _WIN32 ) || defined( _WIN64 )
#define MY_SLEEP_MACRO( x ) Sleep(x)
#else
#define MY_SLEEP_MACRO( x ) sleep((x)/1000)
#endif