이것이 C에서 NULL을 올바르게 사용합니까? 아니면이 문제를 해결할 다른 방법이 있습니까?Java에서 NULL처럼 C에서 NULL 포인터를 사용합니까?
// Send data
// cb_push returns NULL if it is successful
char uart_send(char c) {
void* ret = cb_push(w_buffer, &c);
if (ret != NULL) return c;
SETBIT(UCSR0B, UDRIE0);
return NULL;
}
Java에서 나는 이런 식으로 일을하지만, C에서는 무엇이 좋은 연습인지 모르겠다.
'NULL'은 대개 단지 0이므로 기술적으로 null 문자를 반환합니다 (포인터 관점과 다릅니다). – chris
@chris 또는'((void *) 0'이면 진단을 받게됩니다.) –
'NULL'이 빈번한 경우'return' 문은 무효가됩니다 – ouah