определить С - переменную в C++
От: nnnnn2  
Дата: 14.08.06 13:14
Оценка:
Как известно, чтобы определить extern-переменную в C++, которая изначально определена в C, в C++ — файле достаточно написать
extern "C" ...
А как решить обратную задачу: т.е. как определить переменную в C++ файле,чтобы к ней можно было обращаться из C файла?
Re: определить С - переменную в C++
От: assad Россия  
Дата: 14.08.06 13:17
Оценка:
extern "C" void func()
{
}
Re[2]: определить С - переменную в C++
От: Лазар Бешкенадзе СССР  
Дата: 14.08.06 14:05
Оценка:
Здравствуйте, assad, Вы писали:

A>extern "C" void func()

A>{
A>}

Это не переменная

Лазар
Re: определить С - переменную в C++
От: kan_izh Великобритания  
Дата: 14.08.06 17:09
Оценка:
nnnnn2 wrote:

> Как известно, чтобы определить extern-переменную в C++, которая

> изначально определена в C, в C++ — файле достаточно написать
> extern "C" ...
> А как решить обратную задачу: т.е. как определить переменную в C++
> файле,чтобы к ней можно было обращаться из C файла?
А смысл? Если она POD-типа, то почему бы её не объявить как С? А если это класс, то что ты собрался с ней делать из С?

Совместимость обычно только back, в обратную сторону это как?
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: определить С - переменную в C++
От: Аноним  
Дата: 14.08.06 17:27
Оценка:
Здравствуйте, nnnnn2, Вы писали:

N>Как известно, чтобы определить extern-переменную в C++, которая изначально определена в C, в C++ — файле достаточно написать

N>extern "C" ...
N>А как решить обратную задачу: т.е. как определить переменную в C++ файле,чтобы к ней можно было обращаться из C файла?

К сожалению, никак. extern "C++" нет
Re: определить С - переменную в C++
От: MuTPu4  
Дата: 14.08.06 20:05
Оценка:
Здравствуйте, nnnnn2, Вы писали:

N>Как известно, чтобы определить extern-переменную в C++, которая изначально определена в C, в C++ — файле достаточно написать

N>extern "C" ...
В данном случае речь идет, все же, об объявлении, но не об опредлении.

N>А как решить обратную задачу: т.е. как определить переменную в C++ файле,чтобы к ней можно было обращаться из C файла?

Как и любую другую переменную, только явно указав linkage specification:

exp.cpp
extern "C" int myvar = 1;


main.c
#include <stdio.h>

extern int myvar;

int main( void )
{
  printf( "%d\n", myvar );
}
Re[2]: определить С - переменную в C++
От: nnnnn2  
Дата: 15.08.06 07:41
Оценка:
Код ниже действительно помог, спасибо


MTP>Как и любую другую переменную, только явно указав linkage specification:


MTP>exp.cpp

MTP>
MTP>extern "C" int myvar = 1;

MTP>


MTP>main.c

MTP>
MTP>#include <stdio.h>

MTP>extern int myvar;

MTP>int main( void )
MTP>{
MTP>  printf( "%d\n", myvar );
MTP>}

MTP>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.