И C, и C ++ позволяют объектам и функциям иметь статическую файловую связь, также известную как внутренняя связь. C ++ поддерживает использование безымянных пространств имен вместо области видимости файла, что является преимуществом компилятора. static - модификатор связи Так что, если вам нужна область файла и внутренняя связь, вы должны использовать как пространство имен, так и static в C ++. В C, однако, вам нужно только статическое ключевое слово для достижения того же.
/* C and C++ code */
static int bufsize = 1024;
static int counter = 0;
static long square(long x)
{
return (x * x);
}
Предпочтительный способ сделать это в C ++:
// C++ code
namespace /*unnamed*/
{
static int bufsize = 1024;
static int counter = 0;
static long square(long x)
{
return (x * x);
}
}