Я слышал, что указатели сначала должны быть отброшены до void для обеспечения согласованности значений на разных платформах и должны использовать спецификатор формата %p
. Почему это и какие именно проблемы?Использование указателей void на разных платформах
int x=100;
int *pi=&x;
printf("value of pi is: %p",(void*)pi);
Обратите внимание на то, что ваша цитата, безусловно, относится к POSIX, IIRC соответствует стандартным требованиям только двух разных указателей, имеющих различный выход для конкретной реализации. –
@MatteoItalia Спасибо. Обновлено. –
Хорошая цитата, но на практике, как может произойти тот факт, что ** неявное литье не происходит ** влияет на значение переданного аргумента (другими словами, как заставить приведение к 'void *" сделать значение ' pi' любой другой)? –