Для второй части Вашего вопроса ("jsp файлы, помещенные под сетью-inf, не будет непосредственно доступно пользователю"), который корректен. Чтобы позволить пользователям доступу, файлы JSP в сервлете папки WEB-INF и отображающих сервлет записях должны быть сделаны в файле web.xml для каждой страницы JSP.
Безопасный и рекомендуемый способ доступа к элементам - это объединение, а не перфорация типа указателя, которая обманывает механизмы обнаружения псевдонимов компилятора и может привести к нестабильному коду.
union Vec4 {
v4sf v;
float e[4];
};
Vec4 vec;
vec.v = (v4sf){0.1f,0.2f,0.3f,0.4f};
printf("%f %f %f %f\n", vec.e[0], vec.e[1], vec.e[2], vec.e[3]);
Вы забываете, что вам нужно заново интерпретировать a
как массив чисел с плавающей запятой. Следующий код работает правильно:
int main(){
v4sf a,b,c;
a = (v4sf){0.1f,0.2f,0.3f,0.4f};
b = (v4sf){0.1f,0.2f,0.3f,0.4f};
c = (v4sf){0.1f,0.2f,0.3f,0.4f};
a = b + c;
float* pA = (float*) &a;
printf("a=[%f %f %f %f]\n",pA[0], pA[1], pA[2], pA[3]);
return 0;
}
PS: спасибо за этот вопрос, я не знал, что gcc имеет такую поддержку SSE.
ОБНОВЛЕНИЕ: это решение не работает, когда массивы не выровнены. Решение, предоставленное @drhirsh
, избавлено от этой проблемы.