Что означает 'note: расширенный от макроса' bool '#define bool _Bool'? - PullRequest
0 голосов
/ 15 декабря 2018

Я посмотрел и посмотрел, и я не знаю, что означает эта ошибка.Я пытаюсь написать программу на C, которая определяет, является ли треугольник допустимым, но когда я делаю его в командной строке, он говорит мне, что что-то не так с bool.Я действительно потратил некоторое время на это, и я просто не уверен, как заставить это работать.

Here is my code

1 Ответ

0 голосов
/ 15 декабря 2018

bool - это макрос, который расширяется до _Bool, он определен в <stdbool.h>.

Поэтому, когда вы пишете:

if (bool valid_triangle)

, он обрабатывается так, как если бы вызаписано:

if (_Bool valid_triangle)

Это недопустимый синтаксис._Bool является спецификатором типа, и способ приведения выражения к типу состоит в том, чтобы поместить спецификатор в скобки.Так и должно быть:

if ((bool)valid_triangle)

Но valid_triangle это не переменная, это функция.И уже объявлено, что он возвращает bool, поэтому вам не нужно разыгрывать его.На самом деле это должно быть:

if (valid_triangle(a, b, c))
...