如标题所述,我正在编写以2布尔为参数的函数,但不知道最佳方法是什么!你有什么建议吗?
答案 0 :(得分:2)
c99已经提供了bool
数据类型,如果您正在使用它,可以直接使用它。
另外还有另外一种方法:
简单方法:使用整数并将0视为false,将1视为true。
详细方式:使用true和false名称创建枚举并使用它。
代码示例:
typedef enum
{
FALSE = 0,
TRUE = 1
}Boolean;
int doSomething(Boolean var1, Boolean var2)
{
if(var1 == TRUE)
return 1;
else
return 0;
}
int main()
{
Boolean var1 = FALSE;
Boolean var2 = TRUE;
int ret = doSomething(var1,var2);
return 0;
}
答案 1 :(得分:2)
您可以使用C99 bool类型
#include <stdbool.h> //don't forget to include this library
void func(bool a, bool b)
{
}
int main(void)
{
bool a = true, b = false;
func(a, b);
return 0;
}
答案 2 :(得分:0)
使用两个int
值应该可以正常工作:
void func(int x, int y)
{
if(x) // x is non-zero
{
// do something
}
if(y) // z is non-zero
{
// do something
}
}
func(0, 1); // x is false, y is true
您可以#define
true
和false
类似1
和0
:
#define FALSE 0
#define TRUE 1
func(FALSE, TRUE);
答案 3 :(得分:0)
typedef enum boolean_t{
FALSE = 0,
TRUE
}boolean;
int main(){
fun1(TRUE);
}
int fun1(boolean val)
{
if (val == TRUE){
printf("True\n");
}else{
printf("False\n");
}
}
答案 4 :(得分:0)
尝试这样的事情。 int可以像bool一样。零是错误的。其他一切都是真的。
#include <stdio.h>
void function (int boolValue)
{
if (boolValue)
{
printf("true");
}
else
{
printf("false");
}
}
int main(void)
{
function(1 == 2);
function(1 > 2);
return 0;
}
答案 5 :(得分:0)
如果大小对您很重要,您也可以尝试(假设您只有C89编译器)
#define false 0
#define true 1
typedef char Boolean;
//...
Boolean test = true;
if( test )
puts("Heya!");
else
puts("Not Heya!");
//...
,您的Boolean
保证sizeof() == 1