powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / C или C++
25 сообщений из 149, страница 5 из 6
C или C++
    #34160552
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С присваеванием нормально, с инициализацией нет.
...
Рейтинг: 0 / 0
C или C++
    #34160591
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
int b;
b= 3 ;
нормально? Вообще правильно говорит - пропускать инициализацию нехорошо.
...
Рейтинг: 0 / 0
C или C++
    #34160594
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переменная-то создаётся? :) Создаётся.
...
Рейтинг: 0 / 0
C или C++
    #34160604
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoпеременная-то создаётся? :) Создаётся.

а
Код: plaintext
1.
int b;
это ж инициализация по умолчанию? Или я не прав.
...
Рейтинг: 0 / 0
C или C++
    #34160606
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хмм... а такой код даёт только варнинг
Код: plaintext
1.
2.
goto z;
int a= 1 ;
z: printf("%i",a);
...
Рейтинг: 0 / 0
C или C++
    #34160623
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akhэто ж инициализация по умолчанию?и каким значением инициализируется?
...
Рейтинг: 0 / 0
C или C++
    #34160627
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoхмм... а такой код даёт только варнинг
Код: plaintext
1.
2.
goto z;
int a= 1 ;
z: printf("%i",a);


g++ еррор дает.
...
Рейтинг: 0 / 0
C или C++
    #34160633
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
	int a;
	printf("%i",a);
гы, компилится нормально, но при запуске происходит ТАКОЕ... :)
...
Рейтинг: 0 / 0
C или C++
    #34160654
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo Akhэто ж инициализация по умолчанию?и каким значением инициализируется?

Не знаю. Для классов когда то встречал, что-то подобное. Когда в map.insert класс пихал без конструктора без параметров, то он мне, вроде так и писал, что мол, не могу найти дефолтную инициалзацию для класса (зачем то ему был нужен, для поиска что ли?). Я так понял это конструктор без параметров. Но в обычных случаях компилятор пишет, что конструктра такого нет.
Может дефолтная инициализация только для классов?
...
Рейтинг: 0 / 0
C или C++
    #34160663
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo
Код: plaintext
1.
	int a;
	printf("%i",a);
гы, компилится нормально, но при запуске происходит ТАКОЕ... :)

Значит дефолтная инициализация только для классов.
...
Рейтинг: 0 / 0
C или C++
    #34160673
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoхмм... а такой код даёт только варнинг
Код: plaintext
1.
2.
goto z;
int a= 1 ;
z: printf("%i",a);


Да кстати, чем компилил? Разные реакции на один и тот же момент. Это уже глюк, наверное. :)
...
Рейтинг: 0 / 0
C или C++
    #34160745
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	int a= 1 ;
	switch(a)
	{
	case  0 :
		int b;
		break;
	case  1 :
		b= 5 ;
		break;
	default: break;
	}
хмм... у меня пашет...

Не должно
...
Рейтинг: 0 / 0
C или C++
    #34160884
I)
Автор смешал в одну кучу
1. Языки
2. Компиляторы
3. Библиотеки
и пытается обосновать "слабость" С++ наличием ошибок в библиотеках (в частности)

II)
Сама постановка вопроса "C vs C++" - абсурдна. У каждого из этих языков своя область применения, хотя, конечно, есть и некое подмножество задач, допускающее использование как С так и С++.

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

Гавриленко Сергей АлексеевичУгу. Давайте все дружно на ассемблер пересядем. Там копмилятор проще не бывает, и, следовательно, ошибок в нем меньше.
Вот именно. Только можно идею "расширить и углубить" - откажемся от компилятора вообще и будем HEX-редактором коды набивать...

Akh
Кто-нибудь сталкивался с ошибками в современных популярных библиотеках?

Сталкивался, но сути дела это не меняет.
...
Рейтинг: 0 / 0
C или C++
    #34160886
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) maXmo
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	int a= 1 ;
	switch(a)
	{
	case  0 :
		int b;
		break;
	case  1 :
		b= 5 ;
		break;
	default: break;
	}
хмм... у меня пашет...

Не должно

Так g++ тоже это пропускает.
...
Рейтинг: 0 / 0
C или C++
    #34161311
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарольЗабылI)
Автор смешал в одну кучу
1. Языки
2. Компиляторы
3. Библиотеки
и пытается обосновать "слабость" С++ наличием ошибок в библиотеках (в частности)

II)
Сама постановка вопроса "C vs C++" - абсурдна. У каждого из этих языков своя область применения, хотя, конечно, есть и некое подмножество задач, допускающее использование как С так и С++.

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

Гавриленко Сергей АлексеевичУгу. Давайте все дружно на ассемблер пересядем. Там копмилятор проще не бывает, и, следовательно, ошибок в нем меньше.
Вот именно. Только можно идею "расширить и углубить" - откажемся от компилятора вообще и будем HEX-редактором коды набивать...

Akh
Кто-нибудь сталкивался с ошибками в современных популярных библиотеках?

Сталкивался, но сути дела это не меняет.

Да, понятно уже всем.
Пример можно?
...
Рейтинг: 0 / 0
C или C++
    #34161440
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhЗначит дефолтная инициализация только для классов.ну да, в каждой книжке по сишнику (было) написано, что неинициализированная переменная содержит треш.

AkhДа кстати, чем компилил?вс

Gluk (Kazan)Не должноа чо не так? Тоже багофича?
...
Рейтинг: 0 / 0
C или C++
    #34161777
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) maXmo
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	int a= 1 ;
	switch(a)
	{
	case  0 :
		int b;
		break;
	case  1 :
		b= 5 ;
		break;
	default: break;
	}
хмм... у меня пашет...

Не должно

переменные создаются в начале, как бы это не было фигово. просто описывать их везде можно.
инициализированные ( с каким-то значением) и неиниц. в разных секциях. так же как статические и динамические.
...
Рейтинг: 0 / 0
C или C++
    #34161784
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh
Да, понятно уже всем.
Пример можно?

если понятно, то доказано. зачем же тогда пример для избыточного доказательства???
...
Рейтинг: 0 / 0
C или C++
    #34161894
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin Gluk (Kazan) maXmo
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	int a= 1 ;
	switch(a)
	{
	case  0 :
		int b;
		break;
	case  1 :
		b= 5 ;
		break;
	default: break;
	}
хмм... у меня пашет...

Не должно

переменные создаются в начале, как бы это не было фигово. просто описывать их везде можно.
инициализированные ( с каким-то значением) и неиниц. в разных секциях. так же как статические и динамические.

Создаются в какой момент и где, это не имеет значения. Важно то, что когда программа доходит до их определения (локальные), то она прозводит их инициализацию (вызов конструктора(классы) или присваивание(скаляры, или как их там)), если это требуется. Вопрос в том, можно ли в секции скипать инициализацию, если не неоходима для данного типа. Если компилятор считает, что нельзя, то почему он в вижуал си разрешает это с goto? Если можно, то почему он в свичах запрещает?
И почему нельзя? Если переменная может использоваться без инициализации, то почему в этом случае он запрещает? Двойной инициализации произойти не может, т.к. определятся переменная может только один раз.
...
Рейтинг: 0 / 0
C или C++
    #34161937
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhСоздаются в какой момент и где, это не имеет значения. Важно то, что когда программа доходит до их определения (локальные), то она прозводит их инициализацию (вызов конструктора(классы) или присваивание(скаляры, или как их там)), если это требуется. да
AkhВопрос в том, можно ли в секции скипать инициализацию, если не неоходима для данного типа. Если компилятор считает, что нельзя, то почему он в вижуал си разрешает это с goto? Если можно, то почему он в свичах запрещает?
скипать иницаилизация в смысле? изпользовать после goto l то что написано между goto и l ??? переменная создается. и сидит в памяти. микрософт дает скорее варинг - не присвоено значение

свичь - отдельная песня (см ниже)
Akh
И почему нельзя? Если переменная может использоваться без инициализации, то почему в этом случае он запрещает?
переменная не может быть использована без создания, но модет без инициализации (присваивания значение по-ум.)
AkhДвойной инициализации произойти не может, т.к. определятся переменная может только один раз.

существует такая гадкая весчь - пространство имен :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    int i, a, b;
    a =  10 ;
    for( i= 1 ; i<= 1 ; i++ )
    {
        int a;
        a =  2 ;
        b = a;
    }
    i = a;
...
Рейтинг: 0 / 0
C или C++
    #34161984
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin...

Скажи честно, ты последние 2 листа топика читал (особенно пердпоследний в конце, про инициализацию)?

Просто не охота по новой собирать то, что уже написано.
...
Рейтинг: 0 / 0
C или C++
    #34161992
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin Akh
Да, понятно уже всем.
Пример можно?

если понятно, то доказано. зачем же тогда пример для избыточного доказательства???

Честно, блин, почитай топик (это в первом листе, вроде)
...
Рейтинг: 0 / 0
C или C++
    #34164247
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkhДвойной инициализации произойти не может, т.к. определятся переменная может только один раз.
Код: plaintext
1.
2.
3.
	int b= 1 ;
z:
	int a= 1 ;
	if(b--)goto z;
даже не пикнул. Чего, смотрим асмовый код, сколько там у нас инициализаций?
...
Рейтинг: 0 / 0
C или C++
    #34164333
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
существует такая гадкая весчь - пространство имен :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    int i, a, b;
    a =  10 ;
    for( i= 1 ; i<= 1 ; i++ )
    {
        int a;
        a =  2 ;
        b = a;
    }
    i = a;



Наврное Вы имели ввиду область видимости(scope),
а не пространство имен(name space).
...
Рейтинг: 0 / 0
C или C++
    #34164357
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo AkhДвойной инициализации произойти не может, т.к. определятся переменная может только один раз.
Код: plaintext
1.
2.
3.
	int b= 1 ;
z:
	int a= 1 ;
	if(b--)goto z;
даже не пикнул. Чего, смотрим асмовый код, сколько там у нас инициализаций?

Имел ввиду 2 различных способа инициализации переменной в секции.

Вообщем, сходу, найти здесь логику не получается.
...
Рейтинг: 0 / 0
25 сообщений из 149, страница 5 из 6
Форумы / C++ [игнор отключен] [закрыт для гостей] / C или C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]