Вот вопрос, который я сегодня получил на экзамене:
В C предположим, что указатели строго типизированы (т.е. указатель на int не может использоваться для указания на char). Уменьшает ли это его выразительную силу? Если нет, почему и как вы компенсируете это ограничение? Если да, то как? И какие еще конструкции вы бы добавили, чтобы "уравнять" потерю выразительной мощности C?
Дополнительные сведения:
- Благодаря уменьшенной выразительной мощности, я думаю, это означает: вы не сможете создавать определенные программы, которые вы могли ранее.
- Строго типизированные указатели означают, что вы не можете сделать что-то вроде:
int x = 5; int *p = &x; char *temp = (char*)p;
- Это включает
(void*)
преобразования
Я также включил свой ответ ниже.