guido@boring.uucp (Guido van Rossum) (03/24/86)
If I were to redesign C, function names would just be constant pointers to pieces of code, just like array names would be constant pointers (though alas they aren't because of sizeof -- sizeof for functions is undefined anyway). The syntax for a function call would require an expression of type function pointer to the left of the parenthesis. Function pointers couldn't be dereferenced. (I might leave unary * and & applied to functions in the language to achieve compatibility with existing programs.) It has been said that now one can't see whether f() calls a function named f or a function whose address resides in function pointer variable f -- it this really important? You don't know for array names or macros either (does a+1 reference variable a or macro a? If the answer is that macros should be upper case, sulerly you can invent a convention whereby to recognize function pointers). Guido van Rossum, CWI, Amsterdam (guido@mcvax.UUCP)