реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Вопрос по си, передача строки в функцию
andron86
сообщение Jan 21 2012, 17:46
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Является ли это выражение правильным?
smile3046.gif
Код
#define TEXT "Hello world"

write(char *str)
{
чтение строки ....
}

void main(){
write(TEXT);
}

Go to the top of the page
 
+Quote Post
Палыч
сообщение Jan 21 2012, 17:51
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Да. Что Вас смущало?
Go to the top of the page
 
+Quote Post
andron86
сообщение Jan 21 2012, 17:55
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



У меня, gcc, так работает, а как выше проблема с большими строками :-((
Код
const char Text[]="Hello world";
write(char *str)
{
чтение строки ....
}

void main(){
write(Text);
}
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jan 21 2012, 19:37
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Скорее всего, без "const" gcc помещает строку в ОЗУ.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 21 2012, 19:55
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(andron86 @ Jan 21 2012, 21:46) *
Является ли это выражение правильным?

Если не предпринимается попыток изменить содержимое строки по указателю, то все правильно.
Go to the top of the page
 
+Quote Post
andron86
сообщение Jan 21 2012, 20:10
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Цитата(aaarrr @ Jan 21 2012, 20:55) *
Если не предпринимается попыток изменить содержимое строки по указателю, то все правильно.

Строку не изменяю, понимаю смысл, только читаю.
Цитата
Скорее всего, без "const" gcc помещает строку в ОЗУ.

Вот это уже интереснее, пытаюсь понять, но не врублюсь. Может какие флаги в make, c, c++???
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 21 2012, 21:08
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (andron86 @ Jan 21 2012, 19:55) *
а как выше проблема с большими строками :-((
В чем именно проблема выражается?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
andron86
сообщение Jan 22 2012, 05:50
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Ух, всё работает, почему-то объекты не удалялись при рекомпиляции.
Цитата
В чем именно проблема выражается?

В середине строки лезли непонятные символы. Слышал что-то по поводу строковых литералов в си, поэтому и спросил.

Сообщение отредактировал andron86 - Jan 22 2012, 05:50
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 06:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016