Yochai Timmer и некоторые другие ответы верны, но также подумайте о том, чтобы превратить вашу структуру в класс и сделать эти функции членами класса, так как они в основном работают с ним.Тогда код будет выглядеть примерно так:
int main()
{
IF_ID stage1;
stage1.PC=0;
stage1.FETCH();
stage1.DECODE();
}
Однако, если FETCH не использует ни одно из значений IF_ID, кроме ПК, и в зависимости от того, как организован ваш код, может быть еще понятнее заставить FETCH построить объектвместо того, чтобы передавать пустой объект. Например, что-то вроде:
struct IF_ID {int PC;строковая инструкция;IF_ID (): PC (0) {} // Убедитесь, что по умолчанию PC = 0};
IF_ID Fetch () {IF_ID stage1;// делать выборки и помещать их в stage1 return stage1;// Если IF_ID - большой класс, дорогой для копирования, // убедитесь, что ваш компилятор поддерживает "именованную возвращаемую // оптимизацию значения", т.е.не создает // лишнюю копию между переменной-членом // и возвращаемым значением.}
int main () {IF_ID stage1 = Fetch ();Декодирование (stage1);} * +1010 *