|
|
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
mikhail_nРабочий вариант на чистом Си (ну закроем глаза на cout) Опять 25. Библиотечная ф-я должна компилироваться в отдельном модуле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 20:17:54 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
А что по Вашему помешает ей откомпилироваться в отдельном модуле? Я правда не понимаю чего Вам ещё нужно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 20:31:42 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
mikhail_nА что по Вашему помешает ей откомпилироваться в отдельном модуле? Я правда не понимаю чего Вам ещё нужно... Тут собственно спор идет о причинах больших затруднений перевода библиотечных функций Ф. на С. Я взял максимально простой пример, чтобы, не загромождая деталями, показать сложности этого процесса. А помешает откомпилироваться в отдельном модуле синтакис C. Хотел бы иметь компилятор, который это сделает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 20:40:48 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
авторА помешает откомпилироваться в отдельном модуле синтакис C. Хотел бы иметь компилятор, который это сделает. А, нелинейные эффекты, понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 20:56:42 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
mikhail_n А, нелинейные эффекты, понимаю... Почему нелинейные? Отсутствие в ЯП какой-либо возможности - вещь весьма прямолинейная. Я вот подготовил пример чуть более продвинутый. Главная программа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Процесс компляции и выполнения: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 21:43:42 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
И? Вы что, хотите сказать что если я вынесу свою функцию в отдельный файл, скомпилирую её в .obj, а потом буду линковать с main'ом для разных DIM1, DIM2, DIM3, то мой вариант не будет работать что ли? Я правильно Вас понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 22:06:28 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
mikhail_n, Совершенно верно. Он не то что не будет правильно работать, но и вряд ли какой-нибудь компилятор создаст программу вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 22:08:45 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
Ну Вы и упёртый юноша. Может так будет понятней? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 22:18:54 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
Результаты в студию, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 22:38:06 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
На каком же компиляторе? Мой скромный MS 2008 выдает следующее: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 22:54:33 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
Пжалуйста... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 23:12:48 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
Результат... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 23:17:36 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
MS VS 6.0, дома юзаю Sun Studio 11 на Solaris 10х86 (64 бит), тоже без проблем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 23:20:43 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
Vowk , возможно я не понял вашу идею, но пример со СЛОЖЕНИЕМ матриц весьма неудачен. Проведя комплексную оптимизацию, можно три цикла свернуть в один и сделать реализацию тривиальной. Может быть пример с УМНОЖЕНИЕМ был-бы более показателен. Еще неплохо-бы лицезреть контр-пример на Ф., без которого сравнение получается несколько "серым" и "однообразным". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 23:26:47 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
Дык об оптимизации речь даже и не идёт. С одномерным массивом всё ясно, хотя при кодировании мат алгоритмов бывают ситуации когда удобнее использовать другие структуры, но да это всё банальные вещи. По сравнению с фортраном, вот лично мне на си не хватает такой фишки: Сам метод: Код: plaintext 1. 2. 3. 4. 5. Вызов: Код: plaintext 1. То есть я внутри метода работаю с A как с одномерным массивом размерности N*M*K, а в описании интерфейса говорю что это трехмерный массив A(N,M,K). У нас была очень большая математическая библиотека написана в таком стиле на фортране, вот при портировании её на чистый Си этот момент доставлял неудобства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 23:46:00 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
mayton Vowk , возможно я не понял вашу идею,Да идея там всего одна - не умеет человек пользоваться языком, отсюда и все его возражения. Vowk , хочешь отдельных модулей? Которые можно по отдельности компилировать и в разные проекты вставлять? Смотри приложенный архив. Чистый ANSI C, никаких артефактов из С++. Я не знаю компилятора который с этой программой не справится. Но вот, чтоб ты не блуждал в трех соснах: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 23:53:33 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
mikhail_n, да, проверил, всё работает. Спасибо, теперь понял одно из различий между С и С++. Правда, несколько сложноватое объявление массивов, но всё же сильная вещь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2009, 23:55:55 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
mikhail_nДык об оптимизации речь даже и не идёт. С одномерным массивом всё ясно, хотя при кодировании мат алгоритмов бывают ситуации когда удобнее использовать другие структуры, но да это всё банальные вещи. По сравнению с фортраном, вот лично мне на си не хватает такой фишки: Сам метод: Код: plaintext 1. 2. 3. 4. 5. Вызов: Код: plaintext 1. То есть я внутри метода работаю с A как с одномерным массивом размерности N*M*K, а в описании интерфейса говорю что это трехмерный массив A(N,M,K). У нас была очень большая математическая библиотека написана в таком стиле на фортране, вот при портировании её на чистый Си этот момент доставлял неудобства. А что, приведение типов уже отменили? Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2009, 00:07:17 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
White Owl, тоже спасибо. Выходит, что это особенность не С++ даже, а обычного С. Пример внимательно изучил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2009, 00:18:45 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
Да понятно... Не ЭЛЕГАНТНО ЭТО. double*** - вот это - не элегантно, много геморроя с аллокацией/инициализацией в вызывающей программе. В фортране компиллятор делает это за меня, к хорошему быстро привыкаешь. авторПравда, несколько сложноватое объявление массивов, но всё же сильная вещь А это не массивы. Массивы это такие легкие элегантные конструкции которые живут на стеке. А это - нечто что мы налобали из кучи, а СИ всего лишь подсластил нам пилюлю создав иллюзию что с этим нечто можно обращаться как с массивом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2009, 00:22:03 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
авторА как дополнительная конфетка: обрати внимание как параметры объявлены. А это разве не depricated фича? Чё то у меня смутное чуство что таки да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2009, 00:25:47 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
А насчет Фортрана - то там использовались массивы с переменыыми размерами: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2009, 00:26:45 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
mikhail_nавторА как дополнительная конфетка: обрати внимание как параметры объявлены.А это разве не depricated фича? Чё то у меня смутное чуство что таки да.Да, ее пытались объявить устаревшей, но даже сегодня любой компилятор ее прекрасно понимает. Хотя в классическом учебнике от K&R она уже не упоминается вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2009, 00:41:53 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
А где декларируется связь между звёздочкой '*' и переменной 'L' ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2009, 00:48:43 |
|
||
|
Много ли новых проектов пишется на C
|
|||
|---|---|---|---|
|
#18+
maytonА где декларируется связь между звёздочкой '*' и переменной 'L' ? * означает размер неопределенной длины (может быть, 1, а может быть и 100). Для вычисления индекса последняя размерность массива не имеет значения. Это программист знает, что L - это третья размерность массива, а компилятору она не нужна. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2009, 01:02:21 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35997832&tid=1344463]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
80ms |
get topic data: |
16ms |
get forum data: |
3ms |
get page messages: |
92ms |
get tp. blocked users: |
5ms |
| others: | 207ms |
| total: | 441ms |

| 0 / 0 |
