Jump to content

Statická proměná


ffredyk

Recommended Posts

  • Majitel

Obtiznost tutorialu: 4/5 -> Jen pro pokrocilejsi pawnery

 

Hi all.. Mam tu novy tut.. Brouzdal jsem wikinou a nasel funkci static.. Zde vam ji popisu.

 

Staticka promena se pouziva v situaci kdy chcete pracovat s hodnotou (treba v smycce for) a nechcete si davat new na zacatek scriptu. Tak date do danneho scriptu statickou promenou a ona si bude pamatovat svoji hodnotu pred ukoncenim jednoho loopu smycky..

 

Nejlepe pochopitelno na prikladu:

 

Takze tato funkce:

public neco() //Nas vytvoreny public
{
for(new i = 0;i < 3; i++) //Smycka na 3 loopy
{
 new
 a = 1; //Tento new nam vytvori promenou a s hodnotou 1
	printf("%d", a); //Posle do logu cislo promenne
	a++; //pricte promene +1
}//ukonci smycku
}//ukonci public

 

Tato funkce nam do logu napise pod sebou 1 1 1. Pricemz kdyz pouzijeme statickou promenou:

public neco() //Nas vytvoreny public
{
for(new i = 0;i < 3; i++) //Smycka na 3 loopy
{
 static
 a = 1; //Vytvoreni staticke promenne s hodnotou 1
	printf("%d", a); //Posle do logu cislo promenne
	a++; //pricte promene +1
}//ukonci smycku
}//ukonci public

 

Tak se nam do logu napise pod sebe 1 2 3. Staticka promena si totiz pamatuje svoji hodnotu kdyz se ukonci loop. Toho muzeme vyuzivat kdyz se nechceme otravovat s globalni promenou..

 

Pak je take globalni staticka promena. Tu jsem moc nepochopil ale podle vseho se muze odkazovat do includu daneho scriptu.. Na wiki samp je to napsane asi takto:

 

global static

 

Global static variables are like normal globals but can only be used in the file in which they are declared:

 

File1:

static
gsMyVar = 4;

MyFunc()
{
printf("%d", gsMyVar);
}

#include "File2"

 

File2:

MyFunc2()
{
// This is wrong as gsMyVar doesn't exist here
printf("%d", gsMyVar);
}

 

static can also be applied to functions in the same way.

 

 

Takze vam k tomu moc nepovim..

 

Myslim, ze jsem sem napsal vsechno co jsem pochytil z wikiny.. Zkuste si ty priklady dat do prazdneho scriptu a opravdu to funguje.. Ja osobne to budu ted pouzivat v kazdem pripade kdy se to hodi :)

 

Ocekavam od vas kritiku, pripominky a samozrejme i podekovani :)

Link to comment
Share on other sites

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
×
×
  • Create New...