LINUX.ORG.RU

История изменений

Исправление DELIRIUM, (текущая версия) :

В C у пустых структур sizeof() == 0. Что не мешает создавать переменные типа пустой структуры, брать адрес этих переменных и передавать их в функции.

Ого, ништяк, я не знал. Спасибо. В крестах sizeof пустой структуры по стандарту ИМХО >= 1.

// test.c
#include <stdio.h>

struct penis {
};

int main(int argc, char **argv) {
  printf("size of penis: %zu\n", sizeof(struct penis));
  return 0;
}


// test.cpp
#include <cstdio>

struct penis {
};

int main(int argc, char **argv) {
  printf("size of penis: %zu\n", sizeof(penis));
}
$ clang -o test.c ./test.c && ./test.c
size of penis: 0

$ clang++ -o testcpp ./test.cpp && ./testcpp
size of penis: 1

Исправление DELIRIUM, :

В C у пустых структур sizeof() == 0. Что не мешает создавать переменные типа пустой структуры, брать адрес этих переменных и передавать их в функции.

Ого, ништяк, я не знал. Спасибо. В крестах sizeof пустой структуры по стандарту ИМХО >= 1.

// test.c
#include <cstdio>

struct penis {
};

int main(int argc, char **argv) {
  printf("size of penis: %zu\n", sizeof(penis));
}


// test.cpp
#include <cstdio>

struct penis {
};

int main(int argc, char **argv) {
  printf("size of penis: %zu\n", sizeof(penis));
}
$ clang -o test.c ./test.c && ./test.c
size of penis: 0

$ clang++ -o testcpp ./test.cpp && ./testcpp
size of penis: 1

Исходная версия DELIRIUM, :

В C у пустых структур sizeof() == 0. Что не мешает создавать переменные типа пустой структуры, брать адрес этих переменных и передавать их в функции.

Ого, ништяк, я не знал. Спасибо. В крестах sizeof пустой структуры по стандарту ИМХО >= 1.