什么是定义函数的最佳方法,该函数在C中作为参数使用true或false

时间:2011-10-29 13:26:14

标签: c

如标题所述,我正在编写以2布尔为参数的函数,但不知道最佳方法是什么!你有什么建议吗?

6 个答案:

答案 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;
}

看看: C99 boolean data type?

答案 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 truefalse类似10

#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