0
考虑以下C函数:如何使用双重函数绑定参数?
#define INDICATE_SPECIAL_CASE -1
void prepare (long *length_or_indicator);
void execute();
的准备功能用于存储指向一延迟long *
输出变量。
它可以在C像这样使用:
int main (void) {
long length_or_indicator;
prepare (&length_or_indicator);
execute();
if (length_or_indicator == INDICATE_SPECIAL_CASE) {
// do something to handle special case
}
else {
long length = lengh_or_indicator;
// do something to handle the normal case which has a length
}
}
我想实现在瓦拉是这样的:
int main (void) {
long length;
long indicator;
prepare (out length, out indicator);
execute();
if (indicator == INDICATE_SPECIAL_CASE) {
// do something to handle special case
}
else {
// do something to handle the normal case which has a length
}
}
如何写在瓦拉prepare()
和INDICATE_SPECIAL_CASE
的约束力?
是否有可能将变量分成两部分?
即使out
变量在调用prepare()
(在execute()
)后写入,是否可以避免使用指针?