W mojej głównej pętli znajduje się ten ciąg:
String string1;
Mam funkcję, która weźmie ciąg1 jako parametr i użyje go, aby wysłać ten ciąg jako SMS.
sendSMS(string1);
To jest funkcja sendSMS () (bez parametrów):
void sendSMS()
{ sms.beginSMS(remoteNumber);
sms.print(finalstr);
sms.endSMS();
lcd.setCursor(0, 0);
lcd.print("Message sent!");
delay(10000);
}
Moje pytania to:
- Jak umieścić parametr wejściowy ciągu w sendSMS?
- Czy muszę także używać prototypu funkcji dla sendSMS ()? (tak, że pojawia się trzy razy, 1 w prototypie, 1 w deklaracji i jeden w zaproszeniu). Czy nie muszę używać prototypu funkcji przed główną pętlą ()?
programming
c++
użytkownik1584421
źródło
źródło
void sendSMS(String& thisIsAString)
lub nawet lepiej, stałej referencji, jeśli argument łańcucha nie ma być modyfikowany przez funkcję:void sendSMS(const String& thisIsAString)
Powiedziałbym, żeby nigdy więcej nie używać String. Gdy kod staje się większy, a użycie pamięci będzie krytyczne, trafisz w ślepy zaułek. Wiem, że jest to wygodniejsze, ale daj szansę tablicom char. Coś jak:
Zmieniłem funkcję na bool. Oznacza to, że możesz użyć go w instrukcji if, gdzie chciałbyś, aby został on uzupełniony przed kontynuowaniem kodu.
Będziesz musiał samodzielnie przydzielić pamięć dla tablicy; zadeklaruj to w ten sposób:
Tutaj przeznaczam 32 bajty na dane i jeden dodatkowy bajt na znak, który oznacza „koniec łańcucha” (to jest \ 0).
źródło
Możesz się zmienić
void sendSMS()
do
void sendSMS(String myinputstring)
możesz użyć myinputstring w swoim kodzie.
źródło