程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 有關C和C++中的bool值的使用問題

有關C和C++中的bool值的使用問題

編輯:C++入門知識

今天寫了一個C小程序,可是怎麼編譯都有錯誤,不論是在GCC中還是VC還是eclipse,都有莫民奇妙的錯誤,仔細看後才發現,原來我使用了bool值,而在C語言中根本就沒有這個值,所以會出錯,解決辦法是加上有關bool的宏定義即可:

 

#include <stdio.h>
#include <stdlib.h>
#define BOOL int
#define TRUE 1
#define FALSE 0

struct array
{
	int count;
	int size;
	char *pBase;
};
void init_arr (struct array *pArr,int number);
void show_arr (const struct array *pArr);
BOOL is_empty (const struct array *pArr);

int main (void)
{
	struct array arr;

	init_arr (&arr,10);
	show_arr (&arr);

	return 0;	
}
void init_arr (struct array *pArr,int number)
{
	pArr->pBase = (char *)malloc(sizeof(char)*number);
	if (NULL == pArr->pBase)
	{
		printf ("Memory allocation failed!\a\n");
		exit(EXIT_FAILURE);
	}
	else
	{
		pArr->size = number;
		pArr->count = 0;
	}
	
	return;
}
void show_arr (const struct array *pArr)
{
	int i;
	if ( is_empty(pArr) )
		printf ("Array is empty!\a\n");
	else
	{
		for (i=0;i<(pArr->count);i++)
			printf ("%c ",pArr->pBase[i]);
		printf ("\n");
	}
	
	return;
}
BOOL is_empty (const struct array *pArr)
{
	if (pArr->count == 0)
		return TRUE;
	else
		return FALSE;
}

而此前的代碼在C++中運行完好,這是因為C++中定義了bool值,故而可以使用:

#include <stdio.h>
#include <stdlib.h>

struct array
{
	int count;
	int size;
	char *pBase;
};
void init_arr (struct array *pArr,int number);
void show_arr (const struct array *pArr);
bool is_empty (const struct array *pArr);

int main (void)
{
	struct array arr;

	init_arr (&arr,10);
	show_arr (&arr);

	return 0;	
}
void init_arr (struct array *pArr,int number)
{
	pArr->pBase = (char *)malloc(sizeof(char)*number);
	if (NULL == pArr->pBase)
	{
		printf ("Memory allocation failed!\a\n");
		exit(EXIT_FAILURE);
	}
	else
	{
		pArr->size = number;
		pArr->count = 0;
	}
	
	return;
}
void show_arr (const  struct array *pArr)
{
	int i;
	if ( is_empty(pArr) )
		printf ("Array is empty!\a\n");
	else
	{
		for (i=0;i<(pArr->count);i++)
			printf ("%c ",pArr->pBase[i]);
		printf ("\n");
	}
	
	return;
}
bool is_empty (const struct array *pArr)
{
	if (pArr->count == 0)
		return true;
	else
		return false;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved