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

Reply via email to