/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
#if windows or unix or...
Fra : KL


Dato : 11-11-04 20:39

Findes der nogle defines som er standard i c++ og som fortæller om der
compiles til windows eller eksempelvis unix, linux etc?



 
 
Mogens Hansen (11-11-2004)
Kommentar
Fra : Mogens Hansen


Dato : 11-11-04 20:54


"KL" <spam@alam.big.black.betty> wrote in message
news:4193bfe8$0$175$edfadb0f@dtext01.news.tele.dk...
> Findes der nogle defines som er standard i c++ og som fortæller om der
> compiles til windows eller eksempelvis unix, linux etc?

Nej - ikke i Standard C++.
Men du kan benytte compiler specifikke pre-definerede makroer.

Venlig hilsen

Mogens Hansen



Bertel Brander (11-11-2004)
Kommentar
Fra : Bertel Brander


Dato : 11-11-04 22:44

KL wrote:
> Findes der nogle defines som er standard i c++ og som fortæller om der
> compiles til windows eller eksempelvis unix, linux etc?
>

Der findes ikke en standard, men:

#include <iostream>

int main()
{
#ifdef __GNUC__
std::cout << "It's GNU" << std::endl;
#endif
#ifdef __MINGW32__
std::cout << "It's MinGW" << std::endl;
#endif
#ifdef __CYGWIN__
std::cout << "It's CygWin" << std::endl;
#endif
#ifdef __BORLANDC__
std::cout << "It's Borland" << std::endl;
#endif
#ifdef _MSC_VER
std::cout << "It's Visual C" << std::endl;
#endif
#ifdef unix
std::cout << "It's Unix" << std::endl;
#endif
#ifdef __DMC__
std::cout << "It's Digital Mars" << std::endl;
#endif
#ifdef _WIN32
std::cout << "It's Windows" << std::endl;
#endif
}

Bemærk at CygWin (en gcc klon til Windows) synes at den
er unix og ikke Windows, mens MinGW (en anden GCC klon
på windows) synes den er Windows, men ikke unix.

--
"I learned more from a three minute record
than I ever learned in school"
- Bruce Springsteen

cthulhu (04-12-2004)
Kommentar
Fra : cthulhu


Dato : 04-12-04 04:55

"KL" <spam@alam.big.black.betty> wrote in message news:<4193bfe8$0$175$edfadb0f@dtext01.news.tele.dk>...
> Findes der nogle defines som er standard i c++ og som fortæller om der
> compiles til windows eller eksempelvis unix, linux etc?

Du kan skelne unix fra windows, da de fleste unix-compilere definerer symbolet unix.

Ex:

#ifdef unix
#endif

#ifndef unix
#endif

Jesper Louis Anderse~ (04-12-2004)
Kommentar
Fra : Jesper Louis Anderse~


Dato : 04-12-04 15:56

cthulhu <dsl109249@vip.cybercity.dk> wrote:

> Du kan skelne unix fra windows, da de fleste unix-compilere definerer symbolet unix.
>
> Ex:
>
> #ifdef unix
> #endif
>
> #ifndef unix
> #endif

mushroom$ uname -a
NetBSD mushroom.home 2.99.10 NetBSD 2.99.10 (MUSHROOM) #0:
Thu Dec 2 23:32:50 CET 2004
root@mushroom.home:/usr/obj/sys/arch/i386/compile/MUSHROOM i386
mushroom$ cat tmp.c
/* $Id: skeleton.c,v 1.1 2003/03/27 18:24:06 jlouis Exp $
*
* Jesper Louis Andersen
*/

#ifdef unix
1
#else
0
#endif


mushroom$ gcc -E tmp.c
# 1 "tmp.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "tmp.c"
# 9 "tmp.c"
0
mushroom$


--
jlouis

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste