Статичный по сравнению с глобальным

Если у меня есть файл C как ниже, между чем различие i и j?

#include <stdio.h>
#include <stdlib.h>

static int i;
int j;

int main ()
{
    //Some implementation
}
67
задан Peter Mortensen 29 December 2013 в 17:40
поделиться

4 ответа

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

j имеет внешнюю связь, поэтому вы можете использовать j для ссылки на этот объект, если вы объявите его extern в другой единице трансляции.

61
ответ дан 24 November 2019 в 14:43
поделиться

i будет иметь статическую связь , т.е. переменная доступна только в текущем файле.

j должен быть определен как extern , то есть

extern int j;

в другом файле заголовка ( .h ), и тогда он будет иметь внешнюю связь , и к ним можно получить доступ через файлы.

3
ответ дан 24 November 2019 в 14:43
поделиться

i не виден вне модуля; j доступен глобально.

То есть, другой модуль, связанный с ним, может делать

extern int j;

и затем иметь возможность читать и записывать значение в j. Тот же другой модуль не может получить доступ к i, но может объявить свой собственный экземпляр, даже глобальный, который не будет виден первому модулю.

21
ответ дан 24 November 2019 в 14:43
поделиться

Известно, что в исходной реализации Java имеются некоторые ошибки, связанные с кодировкой файлов. Например, он не может правильно обрабатывать имена файлов с помощью umlauts.

StartZIP является альтернативой, которую мы использовали в нашем проекте: https://truezip.dev.java.net/ Проверьте документацию на сайте.

-121--4154775-

DoModal блокируется. Вы должны создать диалог в куче или сделать его членом вашего класса (это важно), вызвать Create, а затем вызвать SunWindow.

-121--2498504-

Разница заключается в том, что i имеет внутреннюю связь, а j имеет внешнюю связь. Это означает, что вы можете получить доступ к j из других файлов, с которыми вы связываетесь, тогда как i доступен только в том файле, где он объявлен.

5
ответ дан 24 November 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: