Синтаксис в двух разных строках? - PullRequest
0 голосов
/ 23 сентября 2011

У меня есть этот простой вопрос о синтаксисе c.Когда мы пишем:

  printf("hello world
  ");

компилятор выдает ошибку.Зачем?В этом другом случае:

  for (i = 0; i < MAXLINE - 1      
  && (c=getchar)) != EOF && c != '\n'; ++i)

все компилируется нормально.Каково общее правило для всего этого?

Спасибо!

Ответы [ 2 ]

9 голосов
/ 23 сентября 2011

A строковый литерал ("...") не может содержать пустой символ новой строки.

Если вы хотите использовать символ новой строки в строке, используйте escape-последовательность \n (`" helloмир \ п ")

3 голосов
/ 23 сентября 2011

Потому что вы разбиваете строковый литерал, что запрещено в первом примере. Во втором случае вы просто заключаете синтаксис в несколько строк. Например:

printf("hello world"
);

скомпилирует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...