void F(void *n);
..
int i = 5;
F(&i); //Вызов №1
F((void*)&i); //Вызов №2
Есть отличия между 1 и 2, которые могут привести к ошибкам во время исполнения?
Здравствуйте, Аноним, Вы писали:
А>А>void F(void *n);
А>..
А>int i = 5;
А>F(&i); //Вызов №1
А>F((void*)&i); //Вызов №2
А>
А>Есть отличия между 1 и 2, которые могут привести к ошибкам во время исполнения?
Согласно стандарту С (6.3.2.3) "A pointer to void may bbe converted to or from a pointer to any incomplete or object type. A pointer to any incomplete or object type may be converted to a pointer to void and back again; the result shall compare equal to the original pointer."
Поэтому можно обойтись без явного приведения типов.
Здравствуйте, Аноним, Вы писали:
А>А>void F(void *n);
А>..
А>int i = 5;
А>F(&i); //Вызов №1
А>F((void*)&i); //Вызов №2
А>
А>Есть отличия между 1 и 2, которые могут привести к ошибкам во время исполнения?
Можно обойтись без явного приведения.