Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Różnice dyrektyw warunkowych a instrukcji warunkowych.

Ostatnio zmodyfikowano 2015-06-04 18:36
Autor Wiadomość
Huxyf
Temat założony przez niniejszego użytkownika
Różnice dyrektyw warunkowych a instrukcji warunkowych.
» 2015-06-04 11:36:10
Witam,

Po co się stosuje dyrektywy kompilacji warunkowej, a nie po prostu instrukcje warunkowe?

Pytam, ponieważ według mnie to jest praktycznie to samo, prócz różnicy dotyczącej budowy warunku tzn. przy dyrektywach porównuje się stałe #define, natomiast przy zwykłych instrukcjach porównuje się zmienne.

Huxyf
P-133152
pekfos
» 2015-06-04 11:44:51
ponieważ według mnie to jest praktycznie to samo
Podaj kod, w którym działają tak samo.
P-133153
Huxyf
Temat założony przez niniejszego użytkownika
» 2015-06-04 14:33:25
Podaj kod, w którym działają tak samo.

Przykład 1: Dyrektywy warunkowe
C/C++
#define wyraz 10

#if ( wyraz == 1 )
{
    cout << endl << "Stala wyraz jest rowna 1" << endl;
}
#elif ( (wyraz > 0) && (wyraz < 10) )
{
    cout << endl << "Stala wyraz jest mniejsza niz 10" << endl;
}
#elif ( wyraz > 24 )
{
    cout << endl << "Stala wyraz jest nie mniejsza niz 25" << endl;
}
#endif
{
    cout << endl << "Stala wyraz przyjmuje inna wartosc" << endl;
}

Przykład 2: Instrukcje warunkowe
C/C++
int wyraz = 10;

if( wyraz == 1 )
{
    cout << endl << "Stala wyraz jest rowna 1" << endl;
}
else if(( wyraz > 0 ) &&( wyraz < 10 ) )
{
    cout << endl << "Stala wyraz jest mniejsza niz 10" << endl;
}
else if( wyraz > 24 )
{
    cout << endl << "Stala wyraz jest nie mniejsza niz 25" << endl;
}
else
{
    cout << endl << "Stala wyraz przyjmuje inna wartosc" << endl;
}

Dla mnie te przykłady działają identycznie.
P-133158
Monika90
» 2015-06-04 15:50:04
a jak zrobisz takie coś ifem
C/C++
void who_am_i() {
    #ifdef _WIN32
    std::cout << "Windows\n";
    #elif defined(__linux__)
    std::cout << "Linux\n";
    #else
    std::cout << "I don't know.\n";
    #endif
}

int main() {
    who_am_i();
}
?

A jak to za pomocą #if
C/C++
int x;
std::cin >> x;
if( x > 0 )
     std::cout << "x > 0\n";

?
P-133168
Huxyf
Temat założony przez niniejszego użytkownika
» 2015-06-04 17:37:00
Monika90 - Jak zwykle twoje rady / tłumaczenia są naprawdę najbardziej pomocne. Jesteś moim mentorem. A tak na marginesie to dała byś mi namiar do siebie (nr. GG lub adres e-mail)? ;)
P-133176
Monika90
» 2015-06-04 18:36:04
Nie udzielam prywatnych lekcji ani porad. Niestety...
W sprawach C++ zawsze możesz zadać pytanie na forum.
P-133182
« 1 »
  Strona 1 z 1