AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein extern int ProcName oder int ProcName - Ansi C
Thema durchsuchen
Ansicht
Themen-Optionen

extern int ProcName oder int ProcName - Ansi C

Ein Thema von sniper_w · begonnen am 19. Okt 2005 · letzter Beitrag vom 20. Okt 2005
Antwort Antwort
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#1

extern int ProcName oder int ProcName - Ansi C

  Alt 19. Okt 2005, 21:45
Wo liegt den Unterschied zwischen 2 Deklarationene:
Code:
// Fall 1
extern int ProcName ( smoe Params...);
// Fall 2
int ProcName ( smoe Params...);
Denn, soviel ich weis sind alle Funktionen in C, die nicht als static Deklariert worden sind, external sind? Oder ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: extern int ProcName oder int ProcName - Ansi C

  Alt 19. Okt 2005, 21:55
"extern" für eine Funktion (bzw. Prozedur) macht keinen Unterschied zur normalen Deklaration.

Relevant ist "extern" eigentlich nur für Variablen, weil man ohne das "extern" ja eine neue Variable erzeugen würde anstatt sie nur zu deklarieren (d.h. bekannt zu machen).
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: extern int ProcName oder int ProcName - Ansi C

  Alt 19. Okt 2005, 21:58
Wenn das ganze in einer Biblithek steckt, könnte es Auswirkungn auf das "Name Mangling" haben. Soweit ich weiß, werden als extern deklarierte Funktionen nicht "in die Mangel genommen" (man verzeihe mir das schlechte Wortspiel), andere schon.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#4

Re: extern int ProcName oder int ProcName - Ansi C

  Alt 19. Okt 2005, 22:48
@Chewie: korrekt, besonders wenn diese externe Funktion nicht in einem C Source sondern in einem Assembler Source steht und der Linker diese von dort einlinken muß.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: extern int ProcName oder int ProcName - Ansi C

  Alt 19. Okt 2005, 22:52
Die eigentliche Funktion befindet sich in einer *.c datei in einem Projekt der zu einem *.exe Kompiliert wird.

Code:
extern int SomeFunc( type1 param1, type2 param2)
{
// code
}
Ich sollte das jetzt in Dephi übersetzen.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: extern int ProcName oder int ProcName - Ansi C

  Alt 19. Okt 2005, 23:17
@Chewie, Hagen: in einer C-Datei wird kein Name-Mangling gemacht - ich kenne zumindest keinen Compiler der mehr macht, als einen Unterstrich vorne anzufügen (Ok, MS-C macht bei stdcall 'nen @# hintendran wg. Parametercount).

In C++ sieht das anders aus, dafür gibt's dort aber auch das Konstrukt
Code:
extern "C" <deklaration>;
bzw.
Code:
extern "C" {
<deklarationen>
}
@sniper_w: was du hingeschrieben hast, widerspricht sich eigentlich - du hast die Funktion als "extern" deklariert und definierst sich auch gleich noch im Anschluss?
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: extern int ProcName oder int ProcName - Ansi C

  Alt 19. Okt 2005, 23:39
Code:
extern int unzClose (unzFile file)
{
Das soll ich übersetzen, habe es nicht selbst ausgedacht.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
w3seek
(Gast)

n/a Beiträge
 
#8

Re: extern int ProcName oder int ProcName - Ansi C

  Alt 20. Okt 2005, 00:14
Zitat von sniper_w:
Code:
extern int unzClose (unzFile file)
{
Das extern macht da herzlich wenig sinn, es ist schlichtweg falsch. Ignoriere es einfach
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#9

Re: extern int ProcName oder int ProcName - Ansi C

  Alt 20. Okt 2005, 04:19
@Flocke: kannte ja den implementierenden C Source noch nicht. Mit dem nun für mich sichtbaren Informationen macht das extern wirklich keinen Sinn. Ich benutze es, bzw. muß es zwingend benutzen, wenn ich mit GCC meine externen ASM Sourcen durch ein Headerfile einlinken will.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz