
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.217.4] |
![]() |
|
Страницы: (245) « Первая ... 234 235 [236] 237 238 ... 244 245 ( Перейти к последнему сообщению ) |
Сообщ.
#3526
,
|
|
|
amk, он вообще не собирается:
![]() ![]() myaut@panther:/tmp> gcc inti.c inti.c: In function ‘main’: inti.c:7:12: error: invalid type argument of unary ‘*’ (have ‘int’) Если добавить каст к int** переменной i и собрать с параноидальными ключами gcc, то все же ругается: ![]() ![]() myaut@panther:/tmp> gcc -Wall -pedantic -m32 inti.c inti.c:5:5: warning: return type defaults to ‘int’ [-Wreturn-type] inti.c: In function ‘main’: inti.c:8:5: warning: control reaches end of non-void function [-Wreturn-type] inti.c:7:14: warning: ‘i’ is used uninitialized in this function [-Wuninitialized] |
Сообщ.
#3527
,
|
|
|
Компилятор поставлю, разберусь. Кучу ошибок и на глаз обнаружил: в incr надо не ++n; писать, а ++*n;
main надо объявить как положено int main(), incr вызывать как incr(*i); и добавить в конец return 0; Добавлено ![]() ![]() void incr(int *n) { ++*n; } int main() { int i; incr(&i); return 0; } |
Сообщ.
#3528
,
|
|
|
return 0 для main не обязателен.
Добавлено amk, а что ты примером этим показать хотел? |
Сообщ.
#3529
,
|
|
|
Что не всегда использование неинициированной переменной компилятор может отследить. и то, что компилятор ни о чём не сообщил, ещё не значит что в программе ошибок нет. Про логику и не говорю.
Цитата D_KEY @ В чистом C обязателен. И вообще лучше не забывать, что return из main формирует код завершения программы. return 0 для main не обязателен. |
![]() |
Сообщ.
#3530
,
|
|
Блин, когда я вижу такое: https://plus.google.com/1150573667707376591...sts/bevdbCbczmQ я задаюсь сабжем... By design!!!!!!!!!!!!!!!!!!
|
![]() |
Сообщ.
#3531
,
|
|
Это ты сейчас об эксепшне из деструктора, бизнес-логике в нём или наплевательством отношении к инварианту класса?
|
![]() |
Сообщ.
#3532
,
|
|
АРГХ! Снова по работе пришлось столкнуться с этой архаичной фигней. Ну почему во всех (или почти всех) нормальных языках можно явно выбрать, будет ли переменная-счетчик для for внешней или внутренней, а в Делфях она как бы объявлена внешне, но после цикла нельзя использовать ее (последнее) значение, т.к. оно, видите ли, может быть неопредленным?
|
![]() |
Сообщ.
#3533
,
|
|
Цитата korvin @ будет ли переменная-счетчик для for внешней или внутренней а как её можно сделать внутренней в современных языках? насколько я помню в js и в плюсах, даже если переменная объявлена внутри фора - она всё равно доступна после цикла... или я путаю? ![]() |
Сообщ.
#3534
,
|
|
|
Цитата Serafim @ насколько я помню в js и в плюсах, даже если переменная объявлена внутри фора - она всё равно доступна после цикла... или я путаю? Да. Не надо путать православные кресты с недоскриптом. |
![]() |
Сообщ.
#3535
,
|
|
я точно помню, что в каком-то компиле было такое
![]() кастую Крайзера, он точно скажет в каком =) Добавлено Вроде в студии ![]() |
Сообщ.
#3536
,
|
|
|
Так мы говорим о C++ или о его поддержке в глючном VC++ 6?
![]() |
Сообщ.
#3537
,
|
|
|
Цитата Serafim @ Вроде в студии В VS6 была проблема, да и есть сейчас, если им ктото пользуется, что если ты определил переменную в выражении цикла for например: ![]() ![]() for(int counter = 0; counter < 10; ++counter) { // blablabla } ... //! Тут какой то код ... for(int counter = 0; counter < 10; ++counter) { // blablabla } То вот в таком коде, во втором цикле будет ругаца, что переменая counter уже определена выше. Если ты конечно это имел ввиду... Добавлено Но VS6 она древняя если чего, и даже не поддерживает 2003 года стандарт. Я хз это в студии такой баг или в стандарте. И вроде бы этот "баг" можно даже отключить какой то настройкой в VS6...Я щас не припомню точно. |
![]() |
Сообщ.
#3538
,
|
|
Цитата Wound @ В VS6 была проблема гг вп, я победил ![]() ![]() Добавлено Цитата Wound @ Но VS6 она древняя если чего зато не дотнет =) |
Сообщ.
#3539
,
|
|
|
В делфях же, ЕМНИП, могу ошибаться, все переменные(включая те, что используются в цикле), должны быть объявлены в блоке var, который идет перед секцией begin в начале procedure/function, но вроде бы, я опять же не помню, давно писал на делфыях и паскале, можно делать вложеные процедуры или что то типо того, со своей секцией var/begin-end. Могу ошибаться.
Добавлено Цитата Serafim @ гг вп, я победил Кого? Этот баг легко фиксится, достаточно объявить counter до блока for, и дальше его юзать везде, уже не объявляя, а только зануляя. Просто у делфи и С/С++ подход немного разный. В делфи/паскале - все переменные/константы объявляются в блоке var в начале процедуры или функции, а в С/С++ где хочешь - там и объявляй. |
Сообщ.
#3540
,
|
|
|
Цитата Serafim @ гг вп, я победил ![]() |