Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

17.03.2004, 18:59

#pragma - so what?

Tach. Ich bin bei meinem Spaziergang durch eine Bibliothek für den Mikrocontroller, den ich programmieren darf, über folgende Zeile gestossen:

#pragma interrupt_handler CAN_INT0:2

Da hab ich ma gedacht, schauste mal nach was pragma ist:

Zitat


#pragma

The #pragma command gives the programmer the ability to tell the compiler to do certain things. Since the #pragma command is implementation specific, uses vary from compiler to compiler. One option might be to trace program execution.


Prima.

Ich muss aber wissen was dieses Ding tut, weil ich die Lib nach nem anderen Compiler portieren will (zumindest glaub ich, dass ich das will).

Jemand ne Idee wie ich das rausfinden kann?

Edit: Miss Pelling

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

2

17.03.2004, 19:03

Wie gesagt, das ist compilerabhängig, kann also nur in der Compiler Doku stehen. Such mal in der nach interrupt_handler.

3

17.03.2004, 19:40

Die #pragma Direktive ist wie schon gesagt von Compiler zu Compiler unterschiedlich. Man kann mit der #pragma Direktive z.B. Bibliotheken linken oder die Optimierungsgröße des Codes einstellen und noch einige dinge mehr.

Ich hab mal nachgeschaut. Und deine #pragma Anweisung mit interrupt_handler gibt es beim VC .NET nicht einmal.

Für welche Sprache ist die Lib den geschrieben?
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

4

17.03.2004, 19:47

Zitat von »"DragonMaster"«


Für welche Sprache ist die Lib den geschrieben?

#pragma gibt es nur in C/C++. Da es ein Mikrocontroller ist, schätze ich mal das es C ist
Do, ut des!
Ceterum censeo, carthaginem delendam esse

5

17.03.2004, 20:19

Jau, is C. Die Lib ist WiCAN Layer 2 CANlib for ImageCraft ICCAVR.

Das Zielsystem ist ein ATmega162 mit CAN-Anbindung durch einen SJA1000.

Die DOKU ist so klein, dass es einem schon fast Angst macht. Aber ich werd nochmal reinschauen, wenn die Sonne wieder aufgegangen ist. Danke.

Zeraphine

Frischling

Beiträge: 14

Wohnort: Heppenheim

Beruf: Schülerin

  • Private Nachricht senden

6

07.05.2004, 19:07

Mhm... also ich progge ja noch nicht so lange C++, also bitte nicht schlagen wenn was falsch ist. ;)

Ich kenne nur#pragma once. Das setzt man in der Regel ein wenn man eine header mit eine Struktur hat und das das nicht 2 mal in den quelltext kopiert wird. ähnlich wie bei #include <iostream.h> werden ja alle Dateien von der iostream in den Queltext kopiert.... mhm.. ich glaub das hat jetzt nicht wirklich viel dmit zu tun, aber vielleicht konnte ich ja jemand damit helfen. :-D

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

7

07.05.2004, 19:14

Falls Du MSVC benutzt und in der Hilfe/Index nach #pragma schaust, findest Du ca 24 Stück ;):

alloc_text
comment
init_seg1
optimize
auto_inline
component inline_
depth pack
bss_seg
data_seg
inline_recursion
pointers_to_members1
check_stack
function
intrinsic
setlocale
code_seg
hdrstop
message
vtordisp1
const_seg
include_alias
once
warning





Wie gesagt, das ist compiler abhängig.

8

07.05.2004, 21:03

Das Problem war schon längst gelöst, sorry dass ich vergessen hatte das hier zu posten.

Werbeanzeige