LINUX.ORG.RU

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

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

У тебя не получится меня потроллить, просто потому что ты про каких-то сферических коней в вакууме рассуждаешь. Тебе my_func вообще для чего нужна? Какая задача в общем, не в частности.

В my_func ты настойчиво и неоднократно объясняешь компилятору что ты работаешь с int, потом заставляешь его экстремально оптимизировать своего сферического коня в вакууме, а на самом деле работаешь с байтами. И потом удивляешься что получается херня.

Ну флаг в руки, барабан на шею. Не хочешь решать задачу целиком, любишь создавать сферических коней в вакууме, а потом пердолиться с их соединением во что-то полезное - ну можно и так, если это доставляет удовольствие.

А твоя непонятка решается вообще без проблем, всего лишь перемещением одной звёздочки в нужное место и добавлением другой. :) :

#include <stdio.h>

int * my_func( int* p1, int* p2 )
{
    *p1 = 1;
    *p2 = 1;
    return p1;
}

int main()
{
    char buf[sizeof(int)+1];
    printf( "%d\n", *my_func( (int*)buf, (int*)(buf+1) ) );
}

Правильный ответ при любых оптимизациях. Только нахера тут вообще my_func и нахера int я всё равно не понимаю. На всякий случай принёс тебе звёздочек - ******************************. Мне не жалко, пользуйся.

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

У тебя не получится меня потроллить, просто потому что ты про каких-то сферических коней в вакууме рассуждаешь. Тебе my_func вообще для чего нужна? Какая задача в общем, не в частности.

В my_func ты настойчиво и неоднократно объясняешь компилятору что ты работаешь с int, потом заставляешь его экстремально оптимизировать своего сферического коня в вакууме, а на самом деле работаешь с байтами. И потом удивляешься что получается херня.

Ну флаг в руки, барабан на шею. Не хочешь решать задачу целиком, любишь создавать сферических коней в вакууме, а потом пердолиться с их соединением во что-то полезное - ну можно и так, если это доставляет удовольствие.

А твоя непонятка решается вообще без проблем, всего лишь перемещением одной звёздочки в нужное место и добавлением другой. :) :

#include <stdio.h>

int * my_func( int* p1, int* p2 )
{
    *p1 = 1;
    *p2 = 1;
    return p1;
}

int main()
{
    char buf[sizeof(int)+1];
    printf( "%d\n", *my_func( (int*)buf, (int*)(buf+1) ) );
}

Правильный ответ при любых оптимизациях. Только нахера тут вообще my_func и нахера int я всё равно не понимаю. На всякий случай принёс тебе звёздочк - ******************************. Мне не жалко, пользуйся.

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

У тебя не получится меня потроллить, просто потому что ты про каких-то сферических коней в вакууме рассуждаешь. Тебе my_func вообще для чего нужна? Какая задача в общем, не в частности.

В my_func ты настойчиво и неоднократно объясняешь компилятору что ты работаешь с int, потом заставляешь его экстремально оптимизировать своего сферического коня в вакууме, а на самом деле работаешь с байтами. И потом удивляешься что получается херня.

Ну флаг в руки, барабан на шею. Не хочешь решать задачу целиком, любишь создавать сферических коней в вакууме, а потом пердолиться с их соединением во что-то полезное - ну можно и так, если это доставляет удовольствие.

А твоя непонятка решается вообще без проблем:

#include <stdio.h>

int * my_func( int* p1, int* p2 )
{
    *p1 = 1;
    *p2 = 1;
    return p1;
}

int main()
{
    char buf[sizeof(int)+1];
    printf( "%d\n", *my_func( (int*)buf, (int*)(buf+1) ) );
}

Правильный ответ при любых оптимизациях. Только нахера тут вообще my_func и нахера int я всё равно не понимаю.