Вам не хватает закрывающей скобки "}" для moreThanOnce (). У него четыре открытые скобки, но только три закрывающие.
Большинство редакторов, ориентированных на код, подберут для вас фигурные скобки и помогут отследить несбалансированные фигурные скобки (и символы скобок, и т. Д.). Выясните, как это сделать в редакторе, поскольку это необходимо для всего программирования. карьера.
Boost has the typedefs for all of the C99 types and more: «Увеличить целочисленную библиотеку»
Включите файл
, чтобы получить определения для таких типов, как uint16_t
. VC ++ не поставляется с
по умолчанию, но вы можете получить этот файл из нескольких мест. В Википедии перечислено несколько, и Google найдет для вас гораздо больше.
Вы можете обойти проблему с некоторыми директивами #ifdef
.
#ifdef _MSC_VER
typedef __int16 int16_t
#else
#include <stdint.h>
#endif
Будет ли следующий стандарт C ++ определять целые числа фиксированной ширины?
Да.
Как сказал Мерадад, сейчас вы можете использовать #ifdefs
. Альтернативой может быть какой-то сложный шаблон магии. У Boost есть кое-что в этом направлении, библиотека Boost Integer .
Я использовал общедоступную (не GPL - настоящая общедоступная) версию stdint.h
Дэнни Смита, который доступен в пакете mingw:
Мне пришлось настроить эту версию для компиляции с некоторыми компиляторами не VC 8 (в основном VC6) - это мне хорошо послужило.
Возможно, на днях я найду где-нибудь опубликовать свою VC6-совместимую версию. Изменения были довольно незначительными - просто некоторые хитрости с макросами для использования ключевых слов VC6 для 64-битных типов. Если вам не нужна поддержка VC6, вероятно, вам подойдет версия mingw.
There are different paths to take. Most environments would hold that short int
s are 16 bits, and long int
s are 32. (The long
is implied when you declare simply int
.) If you typedef
your own int16 type, you'll probably end up using a short int
.
Another possibility lies with bit fields in structs. You can say something like:
struct x {
int a : 16;
int b : 5;
...
};
And so forth. If you then define:
struct x myvar;
myvar.a = 54;
You can be sure that myvar.a will hold 16 bits, and myvar.b will use 5; the total size of myvar rounding up for what all the bits comprise, plus of course the size of any other fields.