Зачем использовать \" в коде arduino?

Работая с синтаксическим анализом JSON, я заметил, что строка данных типа char записывается следующим образом:

char json[] = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; 

Почему в коде используются (escapes) "---"? Почему мы не можем использовать строку нормально?

, 👍1

Обсуждение

Попробуйте без него и посмотрите, что получится ;-), @SBF


1 ответ


Лучший ответ:

4

Почему в коде используются (escapes) "---"? Почему мы не можем использовать строку нормально?

Потому что требуются побеги.

В C " означает "Начало или конец строки", но \" означает "Символ двойной кавычки".

Должен быть способ отличить символ двойной кавычки от разделителя строк, чтобы компилятор знал, что есть что. Без экранирования ваша строка будет выглядеть так:

char json[] = "{"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]}"; 

и компилятор найдет конец строки во втором ", а затем кучу мусора, прежде чем найдет символ end-of-statement ; . Он не может понять, каким должен быть датчик":"gps", "time":1351824120,"data":[48.756080,2.302038]}", так как он находится не в строке, а после нее.

,