প্রথম এই উদাহরণটি দেখুন:
একটি সাধারণ সি প্রোগ্রামের জন্য সি কোডটি নীচে দেওয়া হয়েছে
struct Foo {
char a;
int b;
double c;
} foo1,foo2;
void foo_assign(void)
{
foo1 = foo2;
}
int main(/*char *argv[],int argc*/)
{
foo_assign();
return 0;
}
Foo_assign () এর সমতুল্য ASM কোডটি
00401050 <_foo_assign>:
401050: 55 push %ebp
401051: 89 e5 mov %esp,%ebp
401053: a1 20 20 40 00 mov 0x402020,%eax
401058: a3 30 20 40 00 mov %eax,0x402030
40105d: a1 24 20 40 00 mov 0x402024,%eax
401062: a3 34 20 40 00 mov %eax,0x402034
401067: a1 28 20 40 00 mov 0x402028,%eax
40106c: a3 38 20 40 00 mov %eax,0x402038
401071: a1 2c 20 40 00 mov 0x40202c,%eax
401076: a3 3c 20 40 00 mov %eax,0x40203c
40107b: 5d pop %ebp
40107c: c3 ret
আপনি দেখতে পাচ্ছেন যে কোনও অ্যাসাইনমেন্ট সহজভাবে সমাবেশে "মুভ" নির্দেশাবলী দ্বারা প্রতিস্থাপন করা হয়েছে, অ্যাসাইনমেন্ট অপারেটরটির অর্থ কেবল এক মেমরি অবস্থান থেকে অন্য মেমরির স্থানে ডেটা সরিয়ে নেওয়া। অ্যাসাইনমেন্টটি কেবল কোনও কাঠামোর তাত্ক্ষণিক সদস্যদের জন্য এটি করবে এবং যখন আপনার কোনও কাঠামোর মধ্যে কমপ্লেক্স ডেটাটাইপ থাকবে তখন অনুলিপি করতে ব্যর্থ হবে। এখানে কমপ্লেক্সের অর্থ আপনার তালিকার দিকে ইশারা করে পয়েন্টারের অ্যারে থাকতে পারে না।
একটি কাঠামোর মধ্যে একটি অক্ষরের অ্যারে নিজেই বেশিরভাগ সংকলকগুলিতে কাজ করে না, কারণ অ্যাসাইনমেন্টটি সহজভাবে এমনকি ডেটাটাইপটিকে জটিল ধরণের হতে না দেখে অনুলিপি করার চেষ্টা করবে।