Di dalam loop utama saya ada string ini:
String string1;
Saya memiliki fungsi yang akan menggunakan string1 sebagai parameter, dan menggunakannya untuk mengirim string ini sebagai SMS.
sendSMS(string1);
Ini adalah fungsi sendSMS () (tanpa parameter):
void sendSMS()
{ sms.beginSMS(remoteNumber);
sms.print(finalstr);
sms.endSMS();
lcd.setCursor(0, 0);
lcd.print("Message sent!");
delay(10000);
}
Pertanyaan saya adalah:
- Bagaimana cara memasukkan parameter input string ke sendSMS?
- Apakah saya juga perlu menggunakan prototipe fungsi untuk sendSMS ()? (sehingga muncul tiga kali, 1 di prototipe, 1 di deklarasi dan satu di panggilan). Atau saya tidak perlu menggunakan prototipe fungsi sebelum loop utama ()?
programming
c++
pengguna1584421
sumber
sumber
void sendSMS(String& thisIsAString)
atau bahkan lebih baik, referensi const, jika argumen string tidak akan dimodifikasi oleh fungsi:void sendSMS(const String& thisIsAString)
Saya akan mengatakan untuk tidak pernah menggunakan String lagi. Ketika kode bertambah besar dan penggunaan memori menjadi sangat penting, Anda akan menemui jalan buntu. Saya tahu ini lebih mudah, tetapi coba beri array array. Sesuatu seperti:
Saya mengubah fungsi menjadi bool. Ini berarti bahwa Anda dapat menggunakannya di dalam pernyataan if, di mana Anda ingin menyelesaikannya sebelum melanjutkan dengan kode Anda.
Anda perlu mengalokasikan memori sendiri untuk array; nyatakan seperti ini:
Di sini, saya mengalokasikan 32 byte untuk data dan satu byte tambahan untuk karakter yang berarti "akhir dari string" (itu yang \ 0).
sumber
Anda bisa berubah
void sendSMS()
untuk
void sendSMS(String myinputstring)
Anda dapat menggunakan myinstrstring dalam kode Anda.
sumber