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

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

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

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

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

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

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

Согласно (c) ANSI ISO/IEC 14882: 2003, стр. 127: Спецификация привязки привязки. Когда спецификация привязки привязки, самая внутренняя определяет язык. Спецификация связи не устанавливает область действия. Спецификация привязки должна выполняться ...
23 апр. '11 в 11: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 в 12: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 в 18:31
7

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

Когда мы компилируем программу на C, вывод сохраняется в a.out. Как мы можем перенаправить скомпилированный вывод в другой файл?
17 мар. '09 в 11:17
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 в 11: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 в 15:38
5

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

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

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

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

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

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

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

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

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

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

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

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

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

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