When cursor is in the second function body, mark-defun can’t mark the second function. But c-mark-defun can, and also the mark-defun in Emacs 25.3. Is it intended? int test_func1(int a) { int i; return 0; } int test_func2(int a) { int i; return 0; }