Глядя на этот код из Зло Arduino Strings
void PrintString(const char *str) {
const char *p;
p = str;
while (*p) {
Serial.print(*p);
p++;
}
}
Я искал, чтобы уменьшить / сжать его.Во-первых, это кажется эквивалентным:
void PrintString(const char *str) {
const char *p;
p = str;
while (*p)
Serial.print(*p++);
}
Теперь, глядя на первые две строки, как я могу объединить следующие две строки, возможно ли это?
const char *p;
p = str;
Могу ли ясделай это?
const char *p = str;
Это может показаться вероятным, но выглядит неуравновешенным, так как справа нет звездочки.Я попробовал это, и это, кажется, работает, но мне было интересно, было ли это правильно, и беспокоился, что позже я получу некоторую трудную для отслеживания ошибку во время выполнения, дальше по линии.
Однако эта строка ниже явно неверна (так как она изменит указатель p
, чтобы он указывал на местоположение, заданное значением первого символа строки C str
):
const char *p = *str;