Удача, которая является жесткой частью того, чтобы быть разработчиком.
я думаю, что Ваш подход хорош, но необходимо сфокусироваться на поставке бизнес-возможности (количество модульных тестов не является мерой бизнес-возможности, но это может дать Вам признак, если Вы идете или от дорожки). Важно определить поведения, которые должны быть изменены, расположить по приоритетам, и фокусироваться на главных.
другая часть советует, должен остаться скромным. Поймите, что, если бы Вы записали что-то настолько большое под реальными крайними сроками и кто-то еще видел Ваш код, у них, вероятно, были бы проблемы при понимании этого также. Существует навык в записи чистого кода, и существует более важный навык имея дело с чужим кодом.
последняя часть советует, должен попытаться усилить остальную часть Вашей команды. Прошлые участники могут знать информацию о системе, которую можно изучить. Кроме того, они могут быть в состоянии помочь протестировать поведения. Я знаю, что идеал должен автоматизировать тесты, но если кто-то может помочь путем проверки, что вещи для Вас вручную рассматривают получение их справки.
bool
существует в текущем C - C99, но не в C89 / 90.
В C99 собственный тип на самом деле называется _Bool
, а bool
- это макрос стандартной библиотеки, определенный в stdbool.h
(который, как ожидается, преобразуется в _Bool
). Объекты типа _Bool
содержат 0 или 1, а true
и false
также являются макросами из stdbool.h
.
Примечание. , Кстати, это означает, что препроцессор C будет интерпретировать #if true
как #if 0
, если не включен stdbool.h
. Между тем, препроцессор C ++ должен изначально распознавать true
как литерал языка.
C99 добавил встроенный _Bool
(подробности см. В Википедии ), и если вы #include
, он предоставляет bool
в качестве макроса. to _Bool
.
Вы спрашивали, в частности, о ядре Linux. Он предполагает наличие _Bool
и предоставляет сам typedef bool
в include / linux / types.h .
C99 определяет логические значения, истину
и ложь
в stdbool.h
.
_Bool
- это ключевое слово в C99: оно определяет тип, как и int
или double
.
6.5.2
2 Объект, объявленный как тип _Bool достаточно велик, чтобы хранить значения 0 и 1.
C99 имеет его в stdbool.h , но в C90 он должен быть определен как typedef или enum:
typedef int bool;
#define TRUE 1
#define FALSE 0
bool f = FALSE;
if (f) { ... }
Альтернативно:
typedef enum { FALSE, TRUE } boolean;
boolean b = FALSE;
if (b) { ... }
No, there is no bool
in ISO C90.
Here's a list of keywords in standard C (not C99):
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
static
struct
switch
typedef
union
unsigned
void
volatile
while
Here's an article discussing some other differences with C as used in the kernel and the standard: http://www.ibm.com/developerworks/linux/library/l-gcc-hacks/index.html