Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Projekt: OS-Development  ::  Code Styleguide  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6, 7  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11924
Beitrag Erhard Henkes Mitglied 21:22:11 30.10.2009   Titel:              Zitieren

Man findet bei der Suche nach stdbool.h:

http://www.koders.com/c/fidDF4818DD265741F8A74455FC281F0C1CBA35EB47.aspx
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef _STDBOOL_H
#define
_STDBOOL_H

/* believe it or not but the Single Unix Specification actually
 * specifies this header, see
 * http://www.opengroup.org/onlinepubs/007904975/basedefs/stdbool.h.html */


#define bool
_Bool
#define true
1
#define false
0
#define
__bool_true_false_are_defined 1

#endif
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef _STDBOOL_H
#define
_STDBOOL_H

/* believe it or not but the Single Unix Specification actually
* specifies this header, see
* http://www.opengroup.org/onlinepubs/007904975/basedefs/stdbool.h.html */


#define bool
_Bool
#define true
1
#define false
0
#define
__bool_true_false_are_defined 1

#endif
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef _STDBOOL_H
#define
_STDBOOL_H

/* believe it or not but the Single Unix Specification actually
 * specifies this header, see
 * http://www.opengroup.org/onlinepubs/007904975/basedefs/stdbool.h.html */


#define bool
_Bool
#define true
1
#define false
0
#define
__bool_true_false_are_defined 1

#endif


http://gel.sourceforge.net/examples/stdbool_8h-source.php
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
00029 #ifndef _STDBOOL_H_
00030 #define _STDBOOL_H_    
00031
00032 #define __bool_true_false_are_defined   1
00033
00034 #ifndef __cplusplus
00035
00036 #define false   0
00037 #define true    1
00038
00039 #define bool    _Bool
00040 #if __STDC_VERSION__ < 199901L && __GNUC__ < 3
00041 typedef int     _Bool;
00042 #endif
00043
00044 #endif /* !__cplusplus */
00045
00046 #endif /* !_STDBOOL_H_ */
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
00029 #ifndef _STDBOOL_H_
00030 #define _STDBOOL_H_
00031
00032 #define __bool_true_false_are_defined 1
00033
00034 #ifndef __cplusplus
00035
00036 #define false 0
00037 #define true 1
00038
00039 #define bool _Bool
00040 #if __STDC_VERSION__ < 199901L && __GNUC__ < 3
00041 typedef int _Bool;
00042 #endif
00043
00044 #endif /* !__cplusplus */
00045
00046 #endif /* !_STDBOOL_H_ */
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
00029 #ifndef _STDBOOL_H_
00030 #define _STDBOOL_H_    
00031
00032 #define __bool_true_false_are_defined   1
00033
00034 #ifndef __cplusplus
00035
00036 #define false   0
00037 #define true    1
00038
00039 #define bool    _Bool
00040 #if __STDC_VERSION__ < 199901L && __GNUC__ < 3
00041 typedef int     _Bool;
00042 #endif
00043
00044 #endif /* !__cplusplus */
00045
00046 #endif /* !_STDBOOL_H_ */

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
abc.w
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2008
Beiträge: 1364
Beitrag abc.w Mitglied 21:26:36 30.10.2009   Titel:              Zitieren

Erhard Henkes schrieb:
C/C++ Code:
while(1){/*  */}
C/C++ Code:
while(1){/* */}
C/C++ Code:
while(1){/*  */}
wirkt halt irgendwie seltsam. :D

Ja, aber nur, weil while kein Funktionsaufruf ist, deshalb gehört ein Leerzeichen zwischen while und (1):
C/C++ Code:
while (1)
{
    /* Do nothing, infinite loop */
}
C/C++ Code:
while (1)
{
/* Do nothing, infinite loop */
}
C/C++ Code:
while (1)
{
    /* Do nothing, infinite loop */
}

;)
general bacardi
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.04.2009
Beiträge: 420
Beitrag general bacardi Mitglied 21:30:28 30.10.2009   Titel:              Zitieren

abc.w schrieb:
Erhard Henkes schrieb:
C/C++ Code:
while(1){/*  */}
C/C++ Code:
while(1){/* */}
C/C++ Code:
while(1){/*  */}
wirkt halt irgendwie seltsam. :D

Ja, aber nur, weil while kein Funktionsaufruf ist, deshalb gehört ein Leerzeichen zwischen while und (1):
C/C++ Code:
while (1)
{
    /* Do nothing, infinite loop */
}
C/C++ Code:
while (1)
{
/* Do nothing, infinite loop */
}
C/C++ Code:
while (1)
{
    /* Do nothing, infinite loop */
}


while(1) ist sowieso schlecher Stil. Manche Compiler beschweren sich darüber mit "Condition always true". Besser: for(;;)

_________________
Wenn die Sonne der Kultur am Horizont versinkt, werfen Zwerge lange Schatten.
abc.w
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2008
Beiträge: 1364
Beitrag abc.w Mitglied 21:39:44 30.10.2009   Titel:              Zitieren

general bacardi schrieb:
while(1) ist sowieso schlecher Stil. Manche Compiler beschweren sich darüber mit "Condition always true". Besser: for(;;)

Stimmt. Der gcc sagt hier aber nichts, man muss es wahrscheinlich explizit einschalten. Der Sun Compiler hat da gleich eine andere Warnung ausgegeben, siehe http://www.c-plusplus.de/forum/viewtopic-var-t-is-252358.html (PrettyOS 107er Version)
Zitat:
cc -O -m32 -xc99 -Bstatic -Iinclude -c -o ckernel.o ckernel.c
"ckernel.c", line 209: warning: statement not reached
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11924
Beitrag Erhard Henkes Mitglied 22:29:01 30.10.2009   Titel:              Zitieren

Zitat:
Besser: for( ;; )
"Das ist Geschmacksache", sagte der Affe, als er in die Seife biss. :D

Das Thema ist allerdings TRUE, true, 1 oder nicht 0.

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm


Zuletzt bearbeitet von Erhard Henkes am 03:37:30 31.10.2009, insgesamt 1-mal bearbeitet
general bacardi
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.04.2009
Beiträge: 420
Beitrag general bacardi Mitglied 22:35:36 30.10.2009   Titel:              Zitieren

Erhard Henkes schrieb:

Das Thema ist allerdings TRUE, true, 1 oder nicht 0.

Verabschiede Dich von TRUE. Nur Makros schreibt man gross. Enums normalerweise nicht.

_________________
Wenn die Sonne der Kultur am Horizont versinkt, werfen Zwerge lange Schatten.
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11924
Beitrag Erhard Henkes Mitglied 22:41:24 30.10.2009   Titel:              Zitieren

Bin gerade dabei ...

Das Thema ist true, 1 oder nicht 0. :)

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm
general bacardi
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.04.2009
Beiträge: 420
Beitrag general bacardi Mitglied 00:49:58 31.10.2009   Titel:              Zitieren

Erhard Henkes schrieb:
Bin gerade dabei ...
Das Thema ist true, 1 oder nicht 0.

Wenn Du C-kompatibel sein willst, nimm 0 für false und alles andere für true. Ansonsten ist es egal. Du kannst es definieren, wie Du möchtest.

_________________
Wenn die Sonne der Kultur am Horizont versinkt, werfen Zwerge lange Schatten.
abc.w
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2008
Beiträge: 1364
Beitrag abc.w Mitglied 23:49:59 31.10.2009   Titel:              Zitieren

general bacardi schrieb:
typedef enum {false, true} bool;
...
bool b = true;

Übrigens, bei solchen Sachen ist sizeof(bool) == sizeof(int)?
Erhard Henkes
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.04.2000
Beiträge: 11924
Beitrag Erhard Henkes Mitglied 13:32:03 01.11.2009   Titel:              Zitieren

Ich denke, dass unter Verwendung des bei C99 eingebauten Typs _Bool folgendes in os.h sinnvoll ist:

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
typedef unsigned int         size_t;

typedef unsigned long long   uint64_t;
typedef unsigned long        uint32_t;
typedef unsigned short       uint16_t;
typedef unsigned char        uint8_t;

typedef signed long long     int64_t;
typedef signed long          int32_t;
typedef signed short         int16_t;
typedef signed char          int8_t;

#define bool
_Bool
#define true
1
#define false
0
#define
__bool_true_false_are_defined 1
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
typedef unsigned int size_t;

typedef unsigned long long uint64_t;
typedef unsigned long uint32_t;
typedef unsigned short uint16_t;
typedef unsigned char uint8_t;

typedef signed long long int64_t;
typedef signed long int32_t;
typedef signed short int16_t;
typedef signed char int8_t;

#define bool
_Bool
#define true
1
#define false
0
#define
__bool_true_false_are_defined 1
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
typedef unsigned int         size_t;

typedef unsigned long long   uint64_t;
typedef unsigned long        uint32_t;
typedef unsigned short       uint16_t;
typedef unsigned char        uint8_t;

typedef signed long long     int64_t;
typedef signed long          int32_t;
typedef signed short         int16_t;
typedef signed char          int8_t;

#define bool
_Bool
#define true
1
#define false
0
#define
__bool_true_false_are_defined 1


Am Unklarsten ist mir die Rolle von "char" bezüglich int8_t bzw. uint8_t.

_________________
OS-Development-, C++, Win32-API-, MFC-, Chemie-, Robotik- und Flugsimulator-Tutorials
http://www.henkessoft.de/index.htm


Zuletzt bearbeitet von Erhard Henkes am 13:34:37 01.11.2009, insgesamt 1-mal bearbeitet
C/C++ Forum :: Projekt: OS-Development  ::  Code Styleguide  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6, 7  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.