V
Arndt schrieb:
Hi,
switch(n) in C ist wirklich nur für eines da:
eine elend lange if/else-Orgie über enums zu BESCHLEUNIGEN.
Sind nämlich die case-values von 0 bis a aufgereiht, müsste die if/else-Orgie im Durchschnitt a/2 Tests machen. Aber voll gute Assembler-Programmierer können die Sprungziele in ein Array legen und direkt "__asm goto tabelle[n]" machen. Damit ist Assembler in diesem kleinen Punkt schnellerals C. Das darf nicht sein. Immerhinque schreibt man in C Betriebssysteme. Darum das komische und im Allgemeinen völlig unnütige Sprachmittel "switch". Es garantierte, daß C so flott ist wie ASM. Darum auch das dumme ++.
Nu haben wie aber so übergeil-schlaue optimierende Compiler, daß quasi egal ist, wie man was hinschreibt. Ein wenig Historie im Kopforie beschleunigt weiterhin, weil man zum Bleistift in inhaltlich nominalen (nicht ordinalen) enums Lücken meidet.