In order for your derived mode to not modify the c-mode syntax table directly, you should define your own syntax table which is based on the c-mode syntax table. Also, it is often helpful to modify the
comment-end variables to match the preferred comment style for the mode:
(let ((table (make-syntax-table)))
(modify-syntax-entry ?- ". 12b" table)
"The syntax table for my mode called `c-like-mode'")
(define-derived-mode c-like-mode c-mode "C-Like"
"Major mode that is like `c-mode' but with \"--\" as a comment"
(setq comment-start "-- ")
(setq comment-end ""))
It is worth noting that, given this syntax table, comments that start with
-- are of the same comment style as comments that start with
//. A side effect of this is that any combination of those characters will result in a comment. In other words,
-/ will all mark the beginning of a comment.