Вопросы с тегом 'linkage'

Linkage описывает, как имена могут или не могут ссылаться на один и тот же объект во всей программе или на единицу. Linkage особенно полезен в С++.
13
ответов

Каков эффект extern "C" в С++?

Что именно помещает extern "C" в код С++? Например: extern "C" { void foo(); }
задан 25 июня '09 в 5:10
10
ответов

Зачем нам нужен extern "C" {#include <foo.h>} в С++?

Зачем нам нужно использовать: extern "C" { #include <foo.h> } В частности: Когда мы должны его использовать? Что происходит на уровне компилятора/компоновщика, который требует от нас его использовать? Как с точки зрения компиляции/связ...
задан 16 сент. '08 в 2:19
7
ответов

Что означает, что имя или тип имеют определенную языковую связь?

Согласно (c) ANSI ISO/IEC 14882: 2003, стр. 127: Спецификация привязки привязки. Когда спецификация привязки привязки, самая внутренняя определяет язык. Спецификация связи не устанавливает область действия. Спецификация привязки должна выполняться ...
задан 23 апр. '11 в 14:29
6
ответов

О непоследовательной связи DLL

Как удалить эту ссылку? Вы можете увидеть сегмент кода, который вызывает это предупреждение. static AFX_EXTENSION_MODULE GuiCtrlsDLL = { NULL, NULL }; //bla bla // Exported DLL initialization is run in context of running application extern "C" v...
задан 07 апр. '10 в 15:51
6
ответов

Определение структуры и функции в области видимости

Итак, насколько я знаю, это законно в C: foo.c struct foo { int a; }; bar.c struct foo { char a; }; Но то же самое с функциями является незаконным: foo.c int foo() { return 1; } bar.c int foo() { return 0; } и приведет к свя...
задан 29 мая '18 в 21:31
4
ответов

глобальная переменная связи c & С++ по умолчанию, множественная задача определения и определения

Например: code1.c/.cpp int a; // ... and so on code2.c/.cpp int a; int main(void) { return 0; } перейти к компиляции: $gcc code1.c code2.c # this is fine $ $g++ code1.cpp code2.cpp # this is dead /tmp/ccLY66HQ.o:(.bss+0x0):...
задан 16 июня '11 в 14:27
1
ответ

Что такое ld-linux.so.2 и linux-gate.so.1?

Когда я запускаю ldd program, я получаю вывод формы linux-gate.so.1 => (0xb77ae000) libstdc++.so.6 => /lib/libstdc++.so.6 (0xb76bc000) libm.so.6 => /lib/libm.so.6 (0xb7691000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb767...
задан 14 нояб. '13 в 18:38
5
ответов

static vs extern "C" / "С++"

В чем разница между статической функцией-членом и внешней связью "C"? Например, при использовании "makecontext" в С++ мне нужно передать указатель на функцию. Google рекомендует использовать внешнюю ссылку "C" для него, потому что "makecontext"...
задан 26 февр. '09 в 22:58
2
ответов

Зависимость Свойство зависит от другого

Как зарегистрировать свойство зависимости, значение которого вычисляется с использованием значения другого свойства зависимостей? Поскольку оболочки .NET-свойств обходятся WPF во время выполнения, не следует включать логику в getters и seters. Для э...
задан 01 сент. '09 в 23:31
4
ответов

Можно ли объявить переменную как статическую, так и внешнюю?

Почему следующее не компилируется? ... extern int i; static int i; ... но если вы отмените порядок, он компилируется отлично. ... static int i; extern int i; ... Что здесь происходит?
задан 18 янв. '13 в 19:58
5
ответов

Определение имени исполняемого файла C

Когда мы компилируем программу на C, вывод сохраняется в a.out. Как мы можем перенаправить скомпилированный вывод в другой файл?
задан 17 марта '09 в 14:17
5
ответов

Почему шаблоны не могут находиться внутри внешних блоков "C"?

Это следующий вопрос для ответа на Можно ли ввести typedef в указатель-на-extern- Тип "C" в шаблоне? Этот код не компилируется с помощью g++, Visual C/С++ и Comeau C/С++ с тем же сообщением об ошибке: #include <cstdlib> extern "C" { s...
задан 02 февр. '11 в 20:30
3
ответов

Внешняя, внутренняя и никакая связь или почему это не работает?

В соответствии со стандартом C: В наборе единиц перевода и библиотеках, составляющих всю программу, каждый объявление определенного идентификатора с внешняя связь обозначает тот же объект или функция. В пределах одной единицы перевода каждое объявл...
задан 29 сент. '16 в 13:06
2
ответов

Что происходит, когда объявление нестатической функции следует декларации статической функции?

Следующие компиляции: static int foo() { return 1; } int foo(); Но будет ли он всегда компилироваться? Является ли поведение в этом случае хорошо определенным? И что это значит, когда нестатический прототип следует статическому объявлению?
задан 01 февр. '15 в 19:21
3
ответов

Является ли законным С++ объявлять main как extern "C"?

Будучи низкоуровневым программистом, я часто работаю с кодом запуска модуля для исполняемых файлов, поэтому я хорошо понимаю, как работает код типа crt0. При написании кода на С++ я обычно объявлял main как extern "C", чтобы соответствовать тому, чт...
задан 06 нояб. '13 в 6:24