nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 21 Nov 2017 06:16



Reply to topic  [ 23 posts ]  Go to page Previous  1, 2
Сишные функции работы со строками 
Author Message
Maniac

Joined: 05 Nov 2008 22:47
Posts: 234
Location: 81.28.208.238
Reply with quote
Post 
Вообчето в С(имется в виду язык) никогда не было операций со строками. Все реализуется библиотечными функциями. Единственная фукция это sizeof(*) (поправьте меня). А по поводу строк...
Я в DOS(-оветские времена) нарисовал в ++ класс(С++) работы со сроками.


23 Feb 2015 04:37
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15715
Location: Colorado
Reply with quote
Post 
Ну стандартные сишные библиотеки вроде как часть языка (см. стандарт ANSI-C).

А sizeof только размер указателя даст, не размер строки...

_________________
:eugeek: https://twitter.com/Shaos1973


23 Feb 2015 04:58
Profile WWW
God

Joined: 02 Jan 2006 05:28
Posts: 1341
Location: Abakan
Reply with quote
Post 
Если мне нужно было только копирование строки, то я обходился самописными суррогатами и не подключал библиотеку.


23 Feb 2015 05:15
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
jdigreze wrote:
Если мне нужно было только копирование строки, то я обходился самописными суррогатами и не подключал библиотеку.

Сорри - но это уж совсем дико, если таковые библиотеки есть. :roll:
А если они есть, то почему их не сделать удобными для пользователя языка?

Я вот, разбираясь с кишками разных процессоров, сделал для себя выводы, почему в ассемблерах
не всё так удобно, как хотелось бы.
Но процессор - железка, ассемблер - низкоуровневый язык для "разговора" с процессором именно
в его терминах.

Собственно, С-то и придумали, чтобы иметь язык с объемом информационного слова покрупнее чем
в ассемблере, хотя но не столь, как в ЯВУ, и не имеющий сильной привязки к типу процессора.

Это и делает С довольно легко переносимым на разные платформы.
Но если есть библиотека - почему б её не написать удобнее, ведь названия и форма вызова
не имеют сильной связи с кодом.
В более поздних С-подобных языках это вполне ведь учли.

У меня лично сильное подозрение, что как в С, так и в Паскале некоторые неудобства имеют место
с целью упрощения компилятора - часть его обязанностей возложили на программиста - пусть сам следит.

_________________
iLavr


23 Feb 2015 10:52
Profile
God

Joined: 02 Jan 2006 05:28
Posts: 1341
Location: Abakan
Reply with quote
Post 
Lavr wrote:
Сорри - но это уж совсем дико, если таковые библиотеки есть. :roll:
А если они есть, то почему их не сделать удобными для пользователя языка?
Меня это не пугает. Я скотину ножом али топором валю без трепыхания души. Что довольно многим может показаться более диким.

Lavr wrote:
Собственно, С-то и придумали, чтобы иметь язык с объемом информационного слова покрупнее чем
в ассемблере, хотя но не столь, как в ЯВУ, и не имеющий сильной привязки к типу процессора.

И чего-енто мне кажется (крестить ся не буду), что С таки придумали не для того. Была вот у чуваков задачка написать некое обеспечЕние для некоего оборудования, вот и решили написать для коего некую абстракцию, и воплотили оное. А вон оно как обернулось. Да и хрен с имями.
В моём скромном - пользовать абстракцию аки есмь, и приспособлять оную под свои скромные нужды.

P.S. Я отдаю себе отчёт в том, что мои суррогаты порой совсем не оптимальны с точки зрения компиляции и выполнения, но... говнокодерство порой процветает! ;)


23 Feb 2015 12:37
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
jdigreze wrote:
Lavr wrote:
Сорри - но это уж совсем дико, если таковые библиотеки есть. :roll:
А если они есть, то почему их не сделать удобными для пользователя языка?
Меня это не пугает. Я скотину ножом али топором валю без трепыхания души.

А я и не говорю, что пугает - я говорю об удобстве.
Есть люди делают кругосветку на велосипедах, воздушных шарах и одиночных яхтах.
Но большинство пользуются автомобилем, самолетом и параходом.

Я, к примеру, могу написать программу в машинных кодах в HEX-редакторе - начинал с этого,
но предочитаю ассемблер с мнемониками, и макросредства тоже очень нефиговы.

Так что я говорю об удобстве прежде всего.

И два чувака думали подумали об своем удобстве, чтобы не писать на ассме - а уж потом:
"вон оно как обернулось". :wink:

Собственно и сам микропроцессор выдумали для удобства - не запиливать большой комплект
ИС в конкретном случае.

_________________
iLavr


23 Feb 2015 12:53
Profile
God

Joined: 02 Jan 2006 05:28
Posts: 1341
Location: Abakan
Reply with quote
Post 
Видимо это связано со стилем жизни. Как это ни странно, но я предпочитаю на велосипеде, в прямом смысле. Надеюсь доделаю монтаж предыдущих заездов, так в курилке ссылки выкложу.


23 Feb 2015 13:51
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
jdigreze wrote:
Как это ни странно, но я предпочитаю на велосипеде, в прямом смысле.

На даче я тоже, бывает, с удовольствием катаюсь на велосипеде.
Но до дачи добираюсь отнюдь не на нем, а уж если в командировку,
то и на поезде езжу. :wink:

Думаю, что в Москву "на велосипеде, в прямом смысле" ты тоже вряд ли предпочитаешь.


Но что-то мы далеко ушли от неудобных строковых функций С со всеми этими аналогиями.
Я же начал топик со следующего:
Lavr wrote:
Вот что я ненавижу в С - так это строковые функции...

Но я же не призывал всех как к их ненависти, так и обожествлению? :wink:

_________________
iLavr


23 Feb 2015 14:19
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 23 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.