Я подозреваю, когда по причинам переносимости добавления указателей делает допущения, лежащие в отношении реализации, но может кто-то пожалуйста, объясните, почему под MinGW GCC я не могу сделать следующее, из-за следующей ошибкиДобавление указателей на обугливает
«недействительных операнды бинарной
+
(имеютchar *
char *
и)»
char *cbase;
char *ep;
char *tbase;
tbase = ep + tbase;
Тем не менее, если я немного манипулировать код, который я могу уйти с
char *cbase;
char *ep;
int temp;
temp = cbase;
tbase = ep + temp;
Я знаю, что я делаю некоторые предположения относительно реализации указателя, но мой вопрос в том, почему компилятор не может решить это для меня?
Thankyou. Я переношу старое приложение Small C, поэтому кажется, что стандарты немного изменились с 80-х годов. Возможно, я достигаю того, чего хочу, используя и int для хранения адреса, но теперь я понимаю стандарт. –
Да, ваша точка зрения относительно неправильного характера кода верна. Оригинальный автор использовал указатели как целые числа без знака из-за ограничений, если небольшой компилятор c. –
@Alex Добро пожаловать. :-) Кстати, вы можете рассмотреть [принятие] (http: //meta.stackexchange.com/q/5234) ответ, который помог вам. –