Hallo
Bei uns verwenden wir CodeWright. Dieses hat eine Automatische
Vervollständigung bei Strukturen.
Ein Beispiel:
typedef struct
{
UINT8 a;
UINT8 b;
} struct_test;
void main(void)
{
struct_test test;
test.
Nach eingabe des Punktes bietet er mir jetzt a oder b an.
Sollte aber beim typedef nicht struct stehten sondern:
#define struktur struct
typedef struktur
{
UINT8 a;
UINT8 b;
} struct_test;
Bietet es mir Code Write nicht mehr an. Weis jemand wo man dies bei Code
Write einstellen kann.
Gruß Peter
Abgesehen von der Sinnhaftigkeit so einer Sache ... #define bearbeitet der Präprozessor. Nicht der Compiler.
Peter schrieb: > #define struktur struct Was soll der Scheiß? struct ist ein reservierter Bezeichner der eine Strukturdefinition einleitet. Deine Autovervollständigung hat nichts mit dem Compiler sondern nur mit dem Editor zu tun, und da der kein struct sieht (das wird ja erst wieder durch den Präprozessor ersetzt) kann der Editor die Struktur nicht mehr als solche erkennen und das Autovervollständigen funktioniert nicht mehr. Aber nochmal, Warum benutzt du nicht den korrekten Bezeichner struct sondern definierst "struktur"? Wo ist der Sinn? Das nennt sich "obfuscation".
Sinn oder Unsinn, ich kann es hald nicht ändern. Ich denke das es ein Problem der IDE nicht des Präprozessor oder des Compilers. Ich muss nur irgendwo bei der IDE einstellen können das er nicht auf struct reagiert sondern auch auf ein anderse keyword. Nur wo ist die Frage.
#define struktur struct Das "struktur" war nur ein Beispielname. Ich kann leider nichts daran ändern das es so s...... gelöst ist. Wollte nur wissen ob jemand weis wie man das neue Keyword einfügt.
Peter schrieb: > Ich muss nur irgendwo bei der IDE einstellen können das er nicht auf > struct reagiert sondern auch auf ein anderse keyword. Du musst das einstellen können? Warum sollte so ein Schalter existieren? Kein Mensch ausser dir (oder eurem "Leerer") kommt auf so eine Schnapsidee eine andere Definition für 'struct' einzuführen. Ich hätte als Entwickler der IDE sowas garantiert nicht vorgesehen. Peter schrieb: > Ich kann leider nichts daran ändern das es so s...... gelöst ist. Warum nicht. Wer denn wenn nicht du, ist doch dein Code! Du programmierst doch? Oder ist alles nur geguttenbergt? Ich liebe 'Progammierer' die meinen programmieren wäre nur zusammenstückeln von codefragmenten aus dem Internet. Gehörst du auch zu der Fraktion?
Das kannst du nicht einstellen. Und das ist auch gut so. Wenn ihr den #define-Unsinn unbedingt machen wollt, musst du halt selber die Struktur-Member hinschreiben. Aber da CodeWright ein kommerzielles Produkt ist, frag halt bdeim Anbieter nach (wer auch immer das zur Zeit ist...) Oliver
Erzähle uns doch mal wo der Unsinn her ist wenn du ihn nicht selbst verbrochen hast.
@udo Schade das du geantwortet hast. Danke für nichts.... Es gibt hald einfach Codeteile die vorgegeben sind das hat nichts mit guttenbergen zu tun. Ich wollte auch nicht über sinn und unsinn .... Auch warum antworte ich überhaupt darauf ... @oliver danke für deine Antwort. Ist leider bei CodeWright nicht mehr so ganz einfach. Ich dachte ich finde eher ein paar "alte Hasen" hier.
Peter schrieb: > Danke für nichts.... Bitte gerne geschehen. Ich habe dir erklärt warum es nicht funktioniert und warum das Blödinn ist. Ich war auch nicht der einzige der das für Blödsinn hält. Da das für dich "nichts" ist, muss ich annehmen daß du es nicht verstanden hast. Oder kannst du Kritik nicht vertragen? Peter schrieb: > Es gibt hald einfach Codeteile die vorgegeben sind Ich hatte schon mal gefragt: Wer gibt solchen Unsinn vor? An den richtet sich dann meine Kritik (und nicht nur meine). Wenn du das auf dich beziehst kann ichs nicht ändern.
Peter schrieb: > Es gibt hald einfach Codeteile die vorgegeben sind das hat nichts mit > guttenbergen zu tun. Ich wollte auch nicht über sinn und unsinn .... Doch. Genau diese Frage MUSS man sich stellen. Denn nicht alles was möglich ist, macht auch Sinn. Und dieses macht ÜBERHAUPT keinen Sinn. Ganz im Gegenteil. C-Schlüsselwörter hinter einem #define zu verstecken, nur um eine andere Bezeichnung dafür zu haben, wird wohl von den meisten als gefährliche Falle angesehen. Und das völlig zu recht. Ein IDE Entwickler wird nicht jeden denkbaren Unsinn unterstützen. Machst du (oder jemand anderer) Unsinn, musst du mit den Konsequenzen leben.
Peter schrieb: > Bitte löscht den Thread hab in einem anderen Forum die Antwort erhalten. Gelernt hast du aber dabei nichts. Schade!
Karl Heinz Buchegger schrieb: > C-Schlüsselwörter hinter einem > #define zu verstecken, nur um eine andere Bezeichnung dafür zu haben, > wird wohl von den meisten als gefährliche Falle angesehen. Und das > völlig zu recht. Es ist wirklich schade daß Peter nicht gesagt hat von wem diese Vorgabe kommt, denn daß es eine Vorgabe ist habe ich zumindest so herausgelesen. Ich kann mir eigentlich nur einen Le(e|h)rer vorstellen der sich C so nebenbei beigebracht hat und damit jetzt seine Schüler beglückt. Vieleicht will er mit der Redefinition deutsch Schlüsselwörter benutzen um es für die Schüler 'einfacher' zu machen. Wenn es so ist dann kann man nur "arme Schüler" sagen. Schönes Wochenende
Ihr solltet Peter nicht so aburteilen, Ihr kennt doch den Hintergrund gar nicht. Es gibt Firmen, die sehr seltsame Vorgaben haben, z.B. weil heute jemand Chefigenieur ist, der außer einem 8051 nie etwas anderes gesehen hat. Ich hatte mal einen Abteilungsleiter, der kein
1 | a = a - 1; |
sehen wollte, sondern stattdessen auf
1 | a = a + 0xffff; |
bestand, weil das angeblich auf irgendeinem uralten µC einen Assemblertakt schneller wäre. Was willste da machen?
Dosmo schrieb: > Was willste da machen? Solange der Abteilungsleiter den Code nicht sieht: Einfach so machen wie's richtig ist. Oder aber, wenn der Abteilungsleiter nicht komplett borniert ist: Ihm die Assembler-Ausgabe für die beiden C-Code Varianten zeigen, und sich über sein staunendes Gesicht freuen. :-)
Dosmo schrieb: > Ihr solltet Peter nicht so aburteilen, Ihr kennt doch den > Hintergrund gar nicht. Nein, natürlich nicht. So wie die anderen habe ich auch herausgelesen, dass das nicht auf seinem Mist gewachsen ist. Trotzdem sollte er dafür kämpfen (von mir aus auch ruhig mit Verweise auf hierher), dass dieser Unsinn abgestellt wird. Unsinn bleibt Unsinn. > Ich hatte mal einen Abteilungsleiter, der kein >
1 | > a = a - 1; |
2 | >
|
> sehen wollte, sondern stattdessen auf >
1 | > a = a + 0xffff; |
2 | >
|
> bestand, weil das angeblich auf irgendeinem uralten µC einen > Assemblertakt schneller wäre. Was willste da machen? Den Algorithmus soweit pimpen, das a ein long sein muss und ihn dann scheinheilig fragen warum seine Lösung nicht geht, deine Lösung aber keinen einzigen Strich Anpassung erfodert hat.
> Ich kann mir eigentlich nur einen Le(e|h)rer vorstellen der sich > C so nebenbei beigebracht hat und damit jetzt seine Schüler > beglückt. > Vieleicht will er mit der Redefinition deutsch Schlüsselwörter > benutzen um es für die Schüler 'einfacher' zu machen. Sowas gibts tatsächlich. Nur übersieht besagter Lehrer dabei völlig, dass für seine Schüler 'struktur' auch nur ein Wort ist. Genauso wie 'struct'. Es ist das Konzept welches dahinter steckt, dessen Verständnis wichtig ist, nicht wie man es nennt. Die Sache wird nicht einfacher oder schwieriger, wenn man eigene Ausdrücke benutzt. Egal wie gut gemeint das auch ist. Der einzige Effekt ist: Niemand anderer versteht einen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.