2012-03-21 5 views
0

У меня есть кусок кода C:Как литая типа INT с atoi() в Int32

Int32 tmp = atoi("314"); 

Он выдает ошибку:

error: Int32 undeclared (first use in this function) 

Я понятия не имею, почему? Не могли бы вы помочь мне?

Может быть, это проблема с #include с:

  • sys/socket.h
  • netinet/in.h
  • arpa/inet.h
  • stdio.h
  • stdlib.h
  • string.h
  • strings.h
+1

Я думаю, что вы хотите 'int tmp = atoi (" 314 ");' – thumbmunkeys

ответ

4

Нет стандартного типа Int32. Вы, вероятно, ищет

int tmp = atoi("314"); 

Если вам нужен 32-разрядное целое число, стандартный тип int32_t определен в inttypes.h или stdint.h.

+1

+1. для предложения 'stdint.h'. – ApprenticeHacker

+4

Также обратите внимание, что 'atoi' не является полезным, если ваша цель - убедиться, что 32-разрядные номера могут быть прочитаны (' int' может быть меньше 32 бит). В этом случае вам понадобится 'strtol' или' sscanf' с макросом 'SCNd32' из' inttypes.h'. –

-1

Если вы хотите Int32 переменной следует использовать

<arm.h> 

Проверить эту ссылку. http://pubs.opengroup.org/onlinepubs/009619299/apdxa.htm

+1

* Действительно *? Почему вы хотите включить этот случайный заголовок? А также, что определяет 'int32', а не' Int32'. – mattjgalloway

+2

Err ... не следует ли просто включать 'stdint.h' вместо какого-то случайного, возможно, определенного для платформы заголовка. – ApprenticeHacker

2

Нет встроенного Int32 типа C. Вы можете включить stdint.h для int32_t и uint32_t. Но в этом случае вы, вероятно, захотите использовать int.

int tmp = atoi("314");