2012-05-29 3 views
1

Я использую MPLAB C18 C компилятор и получаю ошибку синтаксиса с этим кодом:Кастинг на неподписанный символ

hundreds = unsigned char((tick/100)); 
tens = unsigned char((tick - (hundreds * 100))/10); 
ones = unsigned char((tick - (hundreds * 100) - (tens * 10))); 

tick является unsigned int. То, что я пытаюсь, состоит в том, чтобы преобразовать трехзначное значение в три отдельных значения ASCII с помощью простого деления и отбросить все число в мои переменные unsigned char.

Это выглядит хорошо для меня, но я думаю, что я что-то упускаю.

+3

что C++ стиль литье, он не будет работать в С. – Naveen

+0

Я не думаю, что работает с несколькими символическими просто типа спецификаторов даже в C++. – Potatoswatter

+0

Это не сработает для C. Угадайте, в C++ этот тип синтаксиса работает, учитывая поведение конструктора экземпляра. – KedarX

ответ

9

Литье осуществляется в скобках:

hundreds = (unsigned char)(tick/100);