Назначение или memcpy? Каков предпочтительный подход к установке переменной-члена массива?

В этом примере я работаю с objective-c, но ответы от более широкого сообщества C / C ++ приветствуются.

@interface BSWidget : NSObject {
    float tre[3];
}
@property(assign) float* tre;

.

- (void)assignToTre:(float*)triplet {
    tre[0] = triplet[0];
    tre[1] = triplet[1];
    tre[2] = triplet[2];
}

.

- (void)copyToTre:(float*)triplet {
    memcpy(tre, triplet, sizeof(tre) );
}

Таким образом, между этими двумя подходами и учитывая тот факт, что эти функции установки обычно обрабатывают только размеры 2,3 или 4 ...

Какой подход был бы наиболее эффективным в этой ситуации?

Будет ли gcc в целом сводить их к тем же основным операциям?

Спасибо.

6
задан bitcruncher 18 August 2011 в 18:36
поделиться