Jump to content

Recommended Posts

Posted (edited)

Hello,

I have a question.

Is it true that there is no need to define variables as global if i define them not inside a function?

I noticed a long time ago that if i define a variable as local not inside a function then the variable act exactly like global variable because other functions can access the local variable and change the variable.

So I think there is no need to define a variable as global(by adding Global) because of the variable will work as global variable anyway in this case.

Is there still a reason to define variable as global if i define the variable not inside a function?

Edited by Guest
Posted (edited)

Thanks for the answer

 

Does it have an effect on how much memory is consumed for the variable?

I guess not .. but maybe it's true .. I do not know

Edited by Guest
Posted

In AutoIt there's no need to declare a variable using Global/Dim/Local, but it's really bad coding practice to not do it that way.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

Posted (edited)

In AutoIt there's no need to declare a variable using Global/Dim/Local, but it's really bad coding practice to not do it that way.

My intention is to declare a variables in this way:

Example 1

Local $var1 , $var2
Test()
Func Test()
    If $var1+$var2 = 0 Then MsgBox(0,"","",1) ; The function can still access the variables
EndFunc

Instead of:

Example 2

Global $var1 , $var2
Test()
Func Test()
    If $var1+$var2 = 0 Then MsgBox(0,"","",1)
EndFunc

I have no intention to define variables like this:

Example 3

$var1 = ""
$var2 = ""
Test()
Func Test()
    If $var1+$var2 = 0 Then MsgBox(0,"","",1) ; The function can still access the variables
EndFunc

That ^ is really bad coding practice in my opinion.

 

Edit:

I ask what is better - Example 1 or Example 2 ?

Edited by Guest
Posted

1 and 2 are identical as far as AutoIt is concerned. Any variable declared outside a function, regardless of the keyword used, is going to be a Global variable. So, use whatever you want, I prefer to use Global for global variables, and Local for variables inside functions, others have other ideas.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

  • Moderators
Posted

gil900,

 

I prefer to use Global for global variables, and Local for variables inside functions

As do I. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Posted

1 and 2 are identical as far as AutoIt is concerned. Any variable declared outside a function, regardless of the keyword used, is going to be a Global variable. So, use whatever you want, I prefer to use Global for global variables, and Local for variables inside functions, others have other ideas.

Thanks for the answer.

After reading your answer, I prefer Example 2

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...