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

Класс памяти по умолчанию для глобальной переменной - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Заполнить рандомно массив и все отрицательные элементы отправить в конец http://www.cyberforum.ru/cpp-beginners/thread1124460.html
В массиве A=(a1, а2, ..., аn) все отрицательные элементы отправить в «хвост» массива. ( Это задание) Вот сам код. // ConsoleApplication4234452.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include "conio.h" #include <time.h>
C++ Реализовать метод приведения времени в минуты Реализовать внешнюю функцию с именем make_mun(), где mun – тип реализуемой структуры. Функция должна получать в качестве аргументов значения для полей структуры и возвращать структуру требуемого типа. При передаче ошибочных параметров следует выводить сообщение и заканчивать работу. Поле first – целое положительное число, часы; поле second – целое положительное число, минуты. Реализовать метод... http://www.cyberforum.ru/cpp-beginners/thread1124444.html
C++ Структура-пара. Реализовать метод rangecheck() – проверку заданного числа
Реализовать внешнюю функцию с именем make_mun(), где mun – тип реализуемой структуры. Функция должна получать в качестве аргументов значения для полей структуры и возвращать структуру требуемого типа. При передаче ошибочных параметров следует выводить сообщение и заканчивать работу. Поле first – дробное число, левая граница диапазона; поле second – дробное число, правая граница диапазона....
C++ Определить, лежит ли точка внутри заштрихованной области
Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений «Да», «Нет», «На границе» в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе. График Помогите с кодом...
C++ Удалить подряд идущие одинаковые слова из строки http://www.cyberforum.ru/cpp-beginners/thread1124426.html
Одна из ошибок, которую часто допускают неопытные наборщики - дважды написанное слово. Найти такие ошибки в заданном тексте и исправить их Помогите, пожалуйста.
C++ В матрице из нулей и единиц найти квадрат заданного размера, состоящую целиком из нулей В матрице A (m, n), которая состоит из нулей и единиц, найти квадрат заданного размера (квадратную подматрицу), состоящую целиком из нулей Помогите, пожалуйста, абсолютно нет времени это сделать. подробнее

Показать сообщение отдельно
mcoffka
 Аватар для mcoffka
1 / 1 / 1
Регистрация: 19.03.2014
Сообщений: 10
19.03.2014, 23:16     Класс памяти по умолчанию для глобальной переменной
Здравствуйте!
Прочитала такую вещь тут

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

1. Переменная объявлена с классом памяти static. Такая переменная может быть инициализирована явно константным выражением, или по умолчанию нулевым значением. То есть обявления static int i=0 и static int i эквивалентны, и в обоих случаях переменной i будет присвоено значение 0.

2. Переменная объявлена без указания класса памяти, но с явной инициализацией. Такой переменной по умолчанию присваивается класс памяти static. То есть объявления int i=1 и static int i=1 будут эквивалентны.

Переменная объявленная глобально видима в пределах остатка исходного файла, в котором она определена. Выше своего описания и в других исходных файлах эта переменная невидима (если только она не объявлена с классом extern).
Вот что-то не укладывается мне в голове пункт 2 и следующий после него абзац, а точнее то, что написано в скобках.
Как я понимала до прочтения данной информации, глобальная static переменная не будет видна никаким другим файлам программы и даже extern не поможет ее увидеть. Разве не так?
Но если
объявления int i=1 и static int i=1 будут эквивалентны
то почему я могу получить доступ к переменной int i=1 из другого файла с помощью extern, а к static int i=1 не могу?
Поясните, пожалуйста, что я упускаю. Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru