LINUX.ORG.RU

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

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

#include <stdio.h>

typedef float vec3 __attribute__((ext_vector_type(3)));

int main() {
  vec3 v = { 0, 0, 0 };
  v.xz = 1.5;
  v.y = -0.25;
  v[0] = v.y + v[2];
  printf("%f\n", v.x); // 1.25

  vec3 b = v + v;
  printf("%f\n", b[0]); // 2.5

  return 0;
}

clang main.c ; ./a.out

https://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors

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

#include <stdio.h>

typedef float vec3 __attribute__((ext_vector_type(3)));

int main() {
  vec3 v = { 0, 0, 0 };
  v.xz = 1.5;
  v.y = -0.25;
  v[0] = v.y + v[2];
  printf("%f\n", v.x); // 1.25

  vec3 b = v + v;
  printf("%f\n", b[0]); // 2.25

  return 0;
}

clang main.c ; ./a.out

https://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors

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

#include <stdio.h>

typedef float vec3 __attribute__((ext_vector_type(3)));

int main() {
  vec3 v = { 0, 0, 0 };
  v.xz = 1.5;
  v.y = -0.25;
  v[0] = v.y + v[2];
  printf("%f\n", v.x); // 1.25

  vec3 b = v + v;
  printf("%f\n", b[0]); // 2.25
}

clang main.c ; ./a.out

https://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors

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

#include <stdio.h>

typedef float vec3 __attribute__((ext_vector_type(3)));

int main() {
  vec3 v = { 0, 0, 0 };
  v.xz = 1.5;
  v.y = -0.25;
  v[0] = v.y + v[2];
  printf("%f\n", v.x); // 1.25
}

clang main.c ; ./a.out

https://clang.llvm.org/docs/LanguageExtensions.html#vectors-and-extended-vectors