Eclipse gibt mir ungültige Argumente 'Kandidaten sind: void * memset (void *, int,?)' Obwohl ich weiß, dass die Argumente gut sind
Erhalte ich eine ungültige Argumente Fehler in eclipse, aber ich bin zuversichtlich, dass meine Argumente gut sind. Die vorgeschlagenen Argumente enthält,'?', die ich denke möglicherweise das problem, obwohl ich nicht weiß wie es zu lösen ist.
Ich habe mein bestes getan, um kopieren Sie das Beispiel, das ich hier sah:
http://www.cplusplus.com/reference/clibrary/cstring/memset/
Um sicher zu sein, dass ich immer die Argumente Recht.
#include <stdio.h>
#include <string.h>
void foo()
{
char str[] = "why oh why does my IDE give me errors when I know my args are good?";
memset(str, '-', 4);
puts(str);
}
Eclipse gibt mir die folgende Fehlermeldung auf der Zeile memset:
Ungültige Argumente " Kandidaten sind: void * memset(void *, int, ?) '
Was könnte die Ursache sein? Und was ist mit '?' als das 3. arg?
Vielen Dank im Voraus!
PS: Gerade bemerkt, ich bin immer den gleichen Fehler, wenn ich versuche, mit Operationen wie malloc, calloc, etc.
InformationsquelleAutor der Frage djc6535 | 2012-10-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Eclipse:
Edit:
Der Grund, warum dies funktioniert, ist, dass es eine Reihe von Standard beinhaltet und definiert, dass der compiler stillschweigend fügt hinter der Szene, wenn Sie kompilieren. Diese Anweisungen erhalten Sie von eclipse greifen diese sonst Stille Präprozessor-Direktiven, so dass Sie es auf eigene indexer ist die Verwendung der gleichen Einstellungen
InformationsquelleAutor der Antwort Catskul
Ich denke, es ist etwas zu tun mit Ihrem Eclipse-setup, irgendwie.
Genommen standalone, das fragment kompiliert unter GCC (G++) 4.7.1 auf Mac OS X 10.7.5 mit der Befehlszeile:
Die einzige überraschende Sache über das Dritte argument
memset()
ist, dass es vom Typsize_t
aber der Header werden soll, zu erklären, daß, so sollte es kein Problem sein.Wenn Sie
malloc()
et al, Sie werden einschließlich<stdlib.h>
natürlich. Es gibt auch Raum, um zu argumentieren, dass Sie sollten mit<cstdio>
<cstring>
und<cstdlib>
aber das sollte nicht aufhören, den code, den Sie vorgelegt von kompilieren ohne Fehler.InformationsquelleAutor der Antwort Jonathan Leffler
Wenn Sie die Arbeit mit Visual Studio, size_t definiert ist als
In früheren Versionen von Eclipse CDT, __int64 wurde nicht definiert. Sie können das Problem beheben, indem Sie hinzufügen in C/C++ General -> Pfade und Symbole -> Symbole
Oder können Sie aktualisieren Sie Ihre Eclipse-CDT-version
InformationsquelleAutor der Antwort JACH
Habe ich mit einem 3rd-party-C++ - Bibliothek für BeagleBone Entwicklung und ich habe versucht, jeden möglichen Weg, um es aufzunehmen (als Präprozessor enthält, Quell-Ordner, assember umfasst, Bibliothek, C++ compiler, C compiler, etc). Refreshen, reindex, sauber gebaut und für jede änderung, die ich versuchte. Ich selbst gelöscht, das Projekt und kopiert nur die .cpp und .h-Dateien zu einem neuen Projekt.
Schließlich fand ich das problem in meinem setup und beheben Sie ihn wie folgt.
Rechten Maustaste auf das Projekt > Eigenschaften > C/C++ Build - > Tool chain editor - > Strom-generator:> Wählen Sie CDT Internal Builder
Bin ich mit g++, für Ihre Informationen.
InformationsquelleAutor der Antwort Raam Kumar
Ich hatte ein ähnliches Problem mit der Eclipse CDT. Aber in meinem Fall war das Ding, dass ich hatte die
using namespace std;
- Anweisung in mehrere Header. Und in der eine Kombination von Bedingungen, wenn ich alle diese Header, die Eclipse hatte so das Verhalten.InformationsquelleAutor der Antwort Serge Roussak
Ich hatte ein ähnliches Problem beim kompilieren jemand den code, und das problem war der code-Stil. Sie definiert einige Methoden, die in dieser Weise:
Ich denke, dies ist der GNU-Stil. Ändern Sie einfach die Erklärung zu
entfernt das Problem.
InformationsquelleAutor der Antwort wilsan
Die folgende Methode löst das gleiche problem, dass ich hatte. (auf eclipse 4.2)
Project
->Clean
)Project
->C/C++ Index
->Rebuild
)Project
->Build All
)InformationsquelleAutor der Antwort Ramesh-X