سلام دوست عزیز ، تابع increase آدرس یه داده (data) رو به همراه تعداد بایت های این داده رو میگیره . خب همونطور که میبینی معلوم نیست نوع داده چیه (void) هست به خاطر همین نمیتونیم مستقیم ++ش کنیم و مقدارش رو افزایش بدیم . واسه همین میاییم اول اندازه ی داده رو با اندازه ای که یه کاراکتر میگیره (sizeof(char مقایسه میکنیم که اگه برابر بودن معلوم میشه داده ی ما کاراکتر هست . بعد یه اشاره گر (pointer) به یه کاراکتر میسازیم و آدرس data رو میریزیم توش و افزایشش میدیم به این صورت مقداری که data داره بهش اشاره میکنه یه واحد افزایش پیدا میکنه تو مثال تو x میشه y . اگه هم که شرط برقرار نبود و اندازه ی داده برابر با اندازه ی یه integer بود میاییم یه pointer به یه integer میسازیم و آدرس data رو میریزم توش و ++ش می کنیم که در واقع مقداری که Data داره بهش اشاره میکنه افزایش پیدا میکنه که در مثال تو 1602 میشه 1603 .

موفق و پیروز باشی