| Autor | Zpráva | ||
|---|---|---|---|
| SeparateSK Profil |
#1 · Zasláno: 10. 3. 2013, 21:37:44 · Upravil/a: Moderátor (editace znemožněna) 10. 4. 2013, 20:54:16
Už ste skúšali predefinovať if, else, while?
V php to nejde: <?php
define("ak",if);
define("inak",else);
ak(2<3)
echo "Funguje?";
inak
echo "Nefunguje";
?>#include <iostream>
#define ak if
#define inak else
int main(){
ak(2<3)
std::cout<<"2 je menej ako 3";
inak std::cout<<"2 je viac ako 3";
std::cin.get();
}Moderátor Petr ZZZ: Vyčleněno z Hřiště. Příště prosím založ samostatné vlákno rovnou – vůbec netuším, jestli se vyčleněním někde něco neporouchalo. :-)
|
||
| juriad Profil |
C++ lze chápat jako mix dvou jazyků. Jako první se při kompilaci provádějí nad zdrojákem preprocesorové instrukce (to je vše co začíná znakem #) a nahrazují se výskyty takto definovaných maker. Nahrazování funguje čistě textově.
Tedy vlastní C++-ový kompilátor dostane až kód: // 17500 řádků includovaných z iostream.h
int main(){
if(2<3)
std::cout<<"2 je menej ako 3";
else std::cout<<"2 je viac ako 3";
std::cin.get();
}V php jde o úplně jiný mechanismus. define definuje konstrantu, která za žádných okolností nemůže být chápána jako konstrukt jazyka. Nechceme toto vyčlenit do běžného vlákna? |
||
| SeparateSK Profil |
juriad:
„Nechceme toto vyčlenit do běžného vlákna?“ Načo? Však ide iba o "perličku" z programovania v inom jazyku. Inak aj enum v PHP chýba a občas je dosť užitočný v iných jazykoch. <?php
function enum(){
$args=func_get_args();
$c=count($args);
$enstart=0;
for($i=0;$i<$c;$i++,$enstart++){
if(gettype($args[$i])=="array" && is_numeric($args[$i][1])){
$enstart=$args[$i][1];
define($args[$i][0],$enstart);
}
else define($args[$i],$enstart);
}
}
enum(array(Cervena,255),Zelena,array(Modra,355),Siva);
echo "Cervena: ".Cervena."<br />";
echo "Zelena: ".Zelena."<br />";
echo "Modra: ".Modra."<br />";
echo "Siva: ".Siva."<br />";
?>Cervena: 255 Zelena: 256 Modra: 355 Siva: 356 Len som chcel, aby sa to podobalo enum-u v iných prog. jazykoch. |
||
|
Časová prodleva: 13 let
|
|||
0