On 31/10/12 21:02, Dotan Cohen wrote:
On Wed, Oct 31, 2012 at 9:52 PM, donothing successfully
<[email protected]> wrote:
On 31 October 2012 19:15, Dotan Cohen <[email protected]> wrote:
[…]
#include <stdio.h>
int foo();
int main() {
int x = 42;
printf("%d", x);
foo();
return 0;
}
int foo() {
printf("%d", x);
}
[…]
Here x is a local variable of the function *main*.
I think the "global" keyword is more of a weirdism of PHP than
standard practise.
http://en.wikipedia.org/wiki/Global_variable#C_and_C.2B.2B
Exactly. However, there is no flow control outside of main(), so I
don't account for variables declared outside of main(). If someone is
declaring a variable in an area of the program with no flow control,
then they are explicitly declaring their intentions that the variable
will be global. In other words, it is not a surprise or a gotcha when
the variable is available in a different scope.
In Vimscript, an interpreted language, there are no "declarations": any
command needs to be "executed" in order to have an effect. It is when
flow control goes through the :au, :map, :abbrev, :function or :command
command, for instance, that the autocommand, mapping, abbreviation,
function definition or user-command definition are stored in interpreter
memory; before that, Vim doesn't "know" anything about them. Similarly,
the type of a variable is set by the latest :let command affecting that
variable, you cannot "declare" a variable except by giving that variable
a value (possibly an empty value such as "", [] or {}).
Best regards,
Tony.
--
Vote for ME -- I'm well-tapered, half-cocked, ill-conceived and
TAX-DEFERRED!
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php