Maximaler Integerwert?
-
oh jungs. langsam kommts mir wie im kindergarten vor. leider sieht so aus als ob das kind wäre
ne ist gut, ihr habt recht und ich meine ruhe. :xmas1:
das mit dem C compiler hab ich so gemeint, wie ich es gesagt habe und wie du es gesagt hast. wenn es ne exotische maschine ist, und ein exotisches BS dann gibts maybe auch keinen c compiler. was ist daran schwer zu verstehen. die maschine aus dem jahre 58 oder so, das beispiel welches er genannt hat, hat bestimmt keinen c compiler, da es denn nicht gab. und ich glaube nicht, das fuer die kiste jetzt der neuste C compiler genommen wird, und fuer die kiste angepasst wird. ok?
ich meine nur wenn man fuer win oder linux programmiert(linux nicht super exotisch ), dann hat man mit 32/64 bit zu tun und 8bit/byte. wenn man jetzt so ne andere bit kiste hat, informiert man sich idr vorher und wenn man dann weiss das es 1zu6 sind, dann ist das ok. bei normalen win programmen kann man glaub ich ( zumindes NT-reihe ) zu 100% ausgehen, das es 1zu8 ist. und wenn man ein programm dafür schreibt, dann ist das IMMER so.
so genug daruerber gelabbert. ihr habt recht und ich meine ruh. :xmas1: :xmas2: :xmas1:
i love it :xmas1:
-
@newkid
Verstehen tust du es trotzdem wohl nicht, hab ich das Gefühl. Sagt dir eigentlich Portabilität was?
-
Ja ,sagt mir was. Aber nicht jedes Programm muss portabel sein. Es gibt nunmal sehr viele Programme die laufen nur auf WIN z.b. Einige sogar nur ab win2000
Einige laufen nur auf Linux, manche nur auf debian oder so aber nicht offzi. auf Suse ( bestes BSP. VLC, kann man dort nicht so einfach runterladen auf der offiz. site ). Oder Nintendo DS Games, laufen nicht auf PSP oder andersrum. Tausende Programme ( games sind auch programme ) laufen nicht auf jeder Kiste. Die meisten Sachen die programmiert werden, unterstelle ich mal, das diese nicht portabel sind.
Oder im embed. Bereich, da kann es gar nicht portabel sein, wenn man Microcontroller x hat, läuft der nicht auf anderen. Wo liegt das Problem.Meine Aussage besagt nur, das man wenn man vorher weiss auf was es laufen soll, auch andere ( nicht portable ) Lösungen programmieren kann. Ich sagte nie, "Bitte benutzt nicht CHAR_BIT", klar kann man nehmen, aber andere (zugeschnittene) Lösungen sind deswegen nicht falsch.
-
newkid schrieb:
wenn es ne exotische maschine ist, und ein exotisches BS dann gibts maybe auch keinen c compiler.
Dir ist schon klar, dass es C Compiler für nahezu jede Maschine gibt? Und Beispiele habe ich auch gebracht...
C Compiler gibt es wirklich fast überall - denn C Compiler sind so schön einfach zu schreiben. Und die C Runtime ist auch nicht wirklich ein so großer Aufwand...
das beispiel welches er genannt hat, hat bestimmt keinen c compiler, da es denn nicht gab. und ich glaube nicht, das fuer die kiste jetzt der neuste C compiler genommen wird, und fuer die kiste angepasst wird. ok?
Wenn NetBSD dort läuft, läuft auch ein C Compiler dort, weil man sonst NetBSD nicht vernünftig verwenden könnte.
ich meine nur wenn man fuer win oder linux programmiert(linux nicht super exotisch ), dann hat man mit 32/64 bit zu tun und 8bit/byte.
Nein, das was du meinst ist x86, der Prozessor also. Denn Linux läuft auf mehr als nur x86 und 64bittern.
Ich bin zu faul die kompatibilitätsliste durchzugehen, aber Linux läuft auf vielen Exoten...
wenn man jetzt so ne andere bit kiste hat, informiert man sich idr vorher
Du willst es nicht verstehen, gell?
Man _weiss_ eben _nicht_, dass das Programm mal auf so einer Kiste laufen soll.Das nennt sich Portieren - das kommt gerade in der Unix Welt ziemlich oft vor.
bei normalen win programmen kann man glaub ich ( zumindes NT-reihe ) zu 100% ausgehen, das es 1zu8 ist. und wenn man ein programm dafür schreibt, dann ist das IMMER so.
Es sei denn, man will es protieren...
ihr habt recht und ich meine ruh
Natürlich haben wir recht, aber warum widersprichst du uns dann dauernd?
newkid schrieb:
Ja ,sagt mir was. Aber nicht jedes Programm muss portabel sein.
Nicht jedes, aber viele.
Vorallem ist es lächerlich wegen 8 vs CHAR_BIT die Portabilität aufzugeben.Es gibt nunmal sehr viele Programme die laufen nur auf WIN z.b. Einige sogar nur ab win2000
Und?
Tut es diesen Programmen weh CHAR_BIT zu verwenden? Vielleicht läuft Win2K ja mal auf einer anderen Plattform als Intel/AMD Prozessoren...?Einige laufen nur auf Linux, manche nur auf debian oder so aber nicht offzi. auf Suse ( bestes BSP. VLC, kann man dort nicht so einfach runterladen auf der offiz. site ).
Das hat aber andere Ursachen als Portabilität.
Die meisten Sachen die programmiert werden, unterstelle ich mal, das diese nicht portabel sind.
Und?
Ich nehme übrigens an, dass mehr Portable Programme existieren als umgekehrt. Denn die Unix Welt ist ziemlich groß...
Aber OK, da kann man nur spekulieren.Ändert aber nichts daran, dass man CHAR_BIT verwenden sollte.
Oder im embed. Bereich, da kann es gar nicht portabel sein, wenn man Microcontroller x hat, läuft der nicht auf anderen. Wo liegt das Problem.
Doch, geht schon. Nicht gut und nicht immer, aber teilweise geht es.
Problem liegt in deiner Ignoranz.Meine Aussage besagt nur, das man wenn man vorher weiss auf was es laufen soll,
Was man aber nur verdammt selten weiss.
Ich sagte nie, "Bitte benutzt nicht CHAR_BIT", klar kann man nehmen, aber andere (zugeschnittene) Lösungen sind deswegen nicht falsch.
Falsch nicht, aber Blödsinn.
Weil es unnötig ist.Ich dereferenziere ja auch keine NULL Zeiger, nur weil meine Plattform das erlaubt...
Das sind so kleinigkeiten die uU manchmal entscheidend sein können. Der Aufwand ist ja mit oder ohne CHAR_BIT identisch (mal abgesehen davon, dass CHAR_BIT besser dokumentiert was da abgeht, was alleine schonmal ein verdammt guter Grund dafür ist) aber hin und wieder kann es Problemen vorbeugen die du ohne CHAR_BIT vermutlich nie gefunden hättest.
Ist wie void main() - ich sehe keinen Vorteil darin (natürlich auch keinen großen Nachteil, sondern nur einen kleinen) aber die Leute bevorzugen es.
Warum?
Was stört dich an CHAR_BIT? Warum würdest du es nicht verwenden?
Ist die Gefahr, dass du dann auf CHAR_BIT vergisst (weil du es ja nie verwendet hast) wenn du es mal brauchst, nicht relativ groß?Ich verstehe es einfach nicht
-
newkid schrieb:
ok vergessen wir das thema. aber schon komisch, dass du ausweihst indem du aufeinmal von int redest. (int != byte)
Wer sagt das? Ich hab jetzt den C Standard nicht im Kopf, aber C++ sagt afaik folgendes
sizeof(byte) == sizeof(char) <= sizeof(int)
Und in C wird das nicht viel anders sein. Also ist es gut möglich, dass es Systeme gibt, auf denen int != byte nicht zutrifft.
Ich versteh auch nicht, was so schwer daran sein soll, CHAR_BIT zu verwenden. Neben der Portabilität hast du ausserdem den Vorteil, dass nicht selten der Code dadurch mehr Aussagekraft bekommt.
-
groovemaster schrieb:
sizeof(byte) == sizeof(char) <= sizeof(int)
Ähm und jetzt? Ist dies eine allgemeingültige aussage? nein. int kann muss aber nicht so gross sein wie byte. ist wie wenn ich sagen würde(immer) ( x=1) denn x kann 1 sein, muss aber nicht, es gibt unendlich viele gleichungen, wo x nicht 1 ist. hmmm obwohl es auch unendlich viele gibt wo x=1 ist.
JA und ich würde auch CHAR_Bit verwenden. ich gebs zu! nur würde ich keinen den kopf abhacken und drauf rumreiten wenn er es nicht tut. es muss nicht alle portabel sein. die meisten programme(software) auf diesem planeten sind NICHT portabel!:xmas1: :xmas1: :xmas2: :xmas1: :xmas1:
geniesst es solange es noch geht :xmas1: :xmas2: :xmas1:kann ein MOD diesen thread mal schliessen? sonst postet man noch im nächsten jahr drauf
:xmas1:
-
newkid schrieb:
Ähm und jetzt? Ist dies eine allgemeingültige aussage?
Ja.
newkid schrieb:
nein. int kann muss aber nicht so gross sein wie byte. ist wie wenn ich sagen würde(immer) ( x=1) denn x kann 1 sein, muss aber nicht, es gibt unendlich viele gleichungen, wo x nicht 1 ist. hmmm obwohl es auch unendlich viele gibt wo x=1 ist.
Du verstehst offensichtlich nicht. Lass dir deine Aussage
int != byte
und meine
sizeof(byte) == sizeof(char) <= sizeof(int)
nochmal genau durch den Kopf gehen. Vielleicht kommts dir ja noch (nicht falsch verstehen
) :xmas2:
:xmas1:
-
newkid schrieb:
kann ein MOD diesen thread mal schliessen? sonst postet man noch im nächsten jahr drauf
:xmas1:
Warum sollten wir den Thread schließen? Du hast die einzigen zwei Mods hier im ANSI-C-Forum als Diskussionsgegner. Ich denke nicht, dass einer von uns zweien den Thread schließen wird :p
.
Natürlich muss ein Programm nicht protabel sein, aber wie schon gesagt: wir sind hier im ANSI-C-Forum und der ANSI-C-Standard hat mit das Ziel für Portabilität zu sorgen, d. h. dass du ein und den selben Quellcode auf jeder X-beliebigen Maschine und auf jedem X-beliebigen Betriebssystem mit einem C-Compiler compilieren kannst und das Programm dann überall genau das gleiche macht.
-
@chille
Wi lange hat es eigentlich gedauert bis du es mit deiner unsinnigen Methode berechnet hast?MfG CSS
-
prozessorabhängig
musst du selber testenaber:
warum einfach, wenns auch kompliziert geht?mfG (c)h :xmas1: :xmas1: :xmas1:
PS.: gibts so etwas zu ostern auch? :xmas2: