AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

C Funktionen "überladen"

Ein Thema von Elko · begonnen am 24. Sep 2008 · letzter Beitrag vom 1. Okt 2008
Antwort Antwort
Elko

Registriert seit: 2. Feb 2008
52 Beiträge
 
Delphi 7 Personal
 
#1

C Funktionen "überladen"

  Alt 24. Sep 2008, 17:42
Hallöchen!
Ich hab bei mir eine Funktion in meinem C-Programm, die ich im Prinzip "überladen" will. Ich weiß, das geht in C nicht, aber vielleicht hat ja trotzdem jemand ne Idee, wie man das zumindest "simulieren" (ich weiß, das hört sich bescheuert an...)kann.
Also: ich habe eine Funktion, der ich ein mal die eine Struktur übergeben will und das andere Mal eine andere Struktur übergeben will. Im Prinzip macht sie bei beiden Strukturen das gleiche, aber sie muss halt die verschiedenen Strukturen erst einmal für sich "umformulieren". Ich will eigentlich keinesfalls 2 Funktionen mit verschiedenen Namen nutzen
Hat jemand dazu eine Idee?

Gruß,
Elko
Keyboard not found. Press any key to continue.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: C Funktionen "überladen"

  Alt 24. Sep 2008, 17:56
Okay...

Definiere deine Structs so, dass am Anfang die Größe (oder ein anderes, eindeutiges Merkmal) steht.

Jetzt kannst du deiner Funktion einen Pointer übergeben, und die kann diesen auf int (oder eben der Typ des Felds) casten, und anhand dieser heruafinden, welcher der beiden Struct-Typen es ist

(IIRC machen das auch manche Win-API Funktionen so, dass man im übergebenen Struct als erstes Element die Größe drinhat ... )
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.753 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: C Funktionen "überladen"

  Alt 24. Sep 2008, 18:00
.. oder so wie es hier beschrieben ist.
Ist kein wirklicher Overload aber schau selbst mal.
Oder gleich C++ verwenden.


Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Elko

Registriert seit: 2. Feb 2008
52 Beiträge
 
Delphi 7 Personal
 
#4

Re: C Funktionen "überladen"

  Alt 1. Okt 2008, 17:52
Vielen Dank für eure Tipps!
Ich habs jetzt folgendermaßen umgesetzt: Die beiden Strukturen beinhalten als erste Variable ein Byte, das die Größe der Struktur beinhaltet. Dann wird bei einem Aufruf der Funktion die Strukturadresse übergeben und die Funktion nimmt die Adresse als void-Zeiger auf. Dann wandelt sie den void->Zeider in einen Char-Zeiger um, liest das Byte (was ja die Länge der Struktur beinhaltet) und weiß dann Bescheid, welchen Typ ich übergebe

Gruß,
Elko
Keyboard not found. Press any key to continue.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:53 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