Je suis dans une boîte Solaris 10. Le compilateur que j'utilise est: /opt/solstudio12.2/bin/CCEchec de la compilation très simple sous Solaris 10
La compilation du fichier illustré ci-dessous (myTest2.C) échoue.
% CC -I. -o myTest2 myTest2.C
"myTest2.C", line 30: Error: "{" expected instead of "myFunc".
"myTest2.C", line 33: Error: "{" expected instead of "myFunc".
2 Error(s) detected.
- Pourquoi est-il une erreur d'appeler myFunc() tout en déclarant une variable?
- Est-ce parce que ce n'est pas dans n'importe quelle fonction?
- Comment se déplacer?
Pour votre information, je vous écris une chaîne obfuscater qui traverse les lignes de code C++ et remplace les instances d'une chaîne entre guillemets (exemple: « myString ») avec un appel de fonction (Exemple: scrambleString (« myString »)) . myFunc dans cet exemple est analogue à scrambleString
#include <iostream>
#include <string>
using namespace std;
char* myFunc(string inString)
{
char outString[1024];
int i;
for (i = 0; i <= inString.size()-1; i++)
outString[i] = inString[i];
outString[i+1] = '\0';
return outString;
}
// This Works:
static char myVariable1 [ ] = "MyString1" ;
// This Breaks:
static char myVariable2 [ ] = myFunc("MyString2") ; // Line #30
// This Breaks:
char myVariable5 [1024] = myFunc("MyString3"); // Line
#33
int main()
{
// This Works:
string Z = myFunc("Gdkkn Vnqkc");
cout << "Z = " << Z << endl << endl;
}
Quel est le point de remplacer « MaChaîne » avec 'bousculade (« MaChaîne »)'? Le littéral de chaîne est toujours dans votre code, désembrouillé! –
Désolé, je n'étais pas clair/incomplet en faisant cette déclaration. J'aurais dû dire ce qui suit: FYI, j'écris une chaîne obfuscater qui passe par des lignes de code C++ et remplace les instances d'une chaîne entre guillemets (Exemple: "myString") avec un appel de fonction (Exemple: descrambleString ("ut5ml @de ")). myFunc dans cet exemple est analogue à descrambleString et "ut5ml @ de" est la version brouillée de "myString". descrambleString() le convertira à l'original lors de l'exécution. Je ne pensais pas que quiconque serait intéressé par ces détails ou qu'ils étaient pertinents. Ma faute. –