Using esp-open-rtos is not the only way to program ESP8266 in C. First there are non-OS SDK and RTOS SDK from Espressif. ESP8266 Reverse Engineering Wiki has a nice article about the difference between 2 SDKs and their history.
Personally I haven’t used the official SDKs directly. Instead I’m using esp-open-sdk and esp-open-rtos. The former combines the non-OS SDK and free softwares for ESP8266 such as GCC, crosstool-NG, and newlib nicely. The later is the fork of the RTOS SDK and it uses esp-open-sdk as its toolchain.