Допустим, у меня есть файл, в котором я делаю некоторые вычисления по некоторым данным.Это может быть (очень пседо-расчеты) так:
void hash_value(unsigned char* value){
unsigned char i;
for(i + 0; i < 10; i++){
value[i] ^= (0x1b+i)
}
}
void break_value(unsigned char* value){
unsigned char i;
for(i = 0; i < 10; i++)
value[i] &= 0x82;
}
void affect_value(unsigned char* value){
hash_value(value);
break_value(value);
}
В моем основном я бы сделал следующее:
#include "smart_calculations.h"
int main() {
unsigned char value[16] = {'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S', 'S'};
affect_value(value);
// Do other stuff
}
Так как я не собираюсь изменять содержимоемассив значений, но мне нужно сделать вычисления, прежде чем я смогу продолжать делать другие вещи.Я предполагаю, что некоторые компиляторы распознают и оптимизируют код так, чтобы данные вычислялись во время компиляции.
Мой вопрос состоит в том, как заставить (как можно лучше) заставить компилятор выполнить эту оптимизацию во время компиляции, что методы в файле "Smart_calculations" не теряют место в конечном продукте, а начальные значения массива не компилируются в программу?