Quote:
Plus all the globals are at the top with the function prototypes! True, without searching for the variable, you wouldn't be able to connect it with a particular function. But everything is fine with the compiler anyway.
This kind of approach makes your design non modular. It prevent you from reusing your code in another project, or a different part of the same project. You have to link the entire project to use a single function. Or that function, despite preforming a generic operation, cannot be used, because it hard codes the data.
Quote:
On the other hand, a pointer doesn't have to have the same name all the time, so it's bound to change.
This is a positive because it allows generic reusable function. So instead of having a function called addPoints(), that sums up a particular array of scores, you can write a generic function called addList() that sums all the elements in any list. This makes for reusable, modular code.