Форум программистов, компьютерный форум CyberForum.ru

Не могу заставить g++ не инициализировать локальную переменную нулем - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ AllocHook http://www.cyberforum.ru/cpp/thread1615167.html
Помнится в какой-то теме были задачи одного из собеседований озвучены. Из-за давности той темы отдельно создал новую. Заинтересовала меня тогда одна задача. Определить сколько памяти израсходовал map при выделении 1000000 разных записей. Вот я нашел решение, которое годится для общего случая со своими allocator например. #include <crtdbg.h> #pragma push_macro("_DEBUG") #undef _DEBUG...
C++ Сделать блок-схему для курсовой Если вас не затруднит, прошу сделать блок схему к данной программе #include <conio.h> #include <locale.h> #include <stdio.h> #include <stdlib.h> #include <time.h> /*Размерность матрицы*/ #define N 5 #define M 5 http://www.cyberforum.ru/cpp/thread1614220.html
Запуск проекта в clion C++
Всем привет! У меня такая проблема: не могу запустить проект в clio, когда я запускаю проект вылетает окно edit configuration, а я вообще незнаю что туда писать( Помогите пожалуйста! Заранее спасибо)
Как запустить стороннюю программу с атрибутами? C++
Ребята спасайте, вот получается есть такой код в батнике: plink.exe -ssh 209.249.30.190 -C -N -l adm -pw adm -D 8081 -v Как я понимаю, мы открываем файл plink.exe с нужными нам атрибутами. Как точно так же передать эти атрибуты, только через сишку. Что бы например мы могли передавать атрибуты так: plink.exe -ssh edit1.text -C -N -l edit2.text -pw edit3.text -D 8081 -v
C++ Обмен данными через параллельный порт http://www.cyberforum.ru/cpp/thread1611962.html
Нужен код программы, которая будет обмениваться данными с устройством, подключенное через параллельный порт Добавлено через 14 часов 41 минуту В частности обмен данными с флешкой или принтером
C++ Изменение заголовка окна программы в консоли Здравствуйте. Нужна помощь. Как сделать так, чтобы окно программы в консоли было подписано названием моей программы, а не путём к ней. Можно, конечно, сделать так: #include <iostream> #include <conio.h> #include <windows.h> using namespace std; int main() { system("title Название программы"); подробнее

Показать сообщение отдельно
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4253 / 2785 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1

Не могу заставить g++ не инициализировать локальную переменную нулем - C++

17.12.2015, 06:59. Просмотров 553. Ответов 20
Метки (Все метки)

Привет!
Есть такой код (из серии "что будет напечатано на экран")
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
int x = 1;
 
namespace A
{
int x = 2;
}
 
int main() 
{
    int x = x;
    cout << x << endl;
    return 0;
}
Ожидается мусор, но g++ и clang++ упорно выводят 0, мусор выводит только MSVC. Посмотрел ассемблерный выхлоп, g++ просто берет 4 байта со стека и печатает их (почему-то на стеке оказывается 0), clang++ явно пишет 0 на стек (т.е. явно инициализирует).
В g++ собирают так
Bash
1
g++ -Wall -pedantic-errors -std=c++11 -O2 -fno-init-local-zero tmp.cpp
варнинги просто чтоб посмотреть на уровень предупреждений, а стандарт указал, чтоб он gnu'шные фичи не использвоал (мало ли), оптимизация понятно для чего (чтоб не дебаг)). -fno-init-local-zero по сути используется по дефолту.

Как получить заветный мусор на выходе?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru