Because section 6.3.2.3 paragraph 3 of the 1999 edition of the C Standard states: with the note: For a long int, the value 0 can be expressed by the constant 0L, but long int is not a pointer type anyway. My point is that to be pedantic, the standard allows both (void*)0 and (void*)0L, so suggesting that (void*)0L is pedantic in ...