(The main language with block-style but non-nestable comments is, of course, C, and that doesn't need CCF since it's got a more powerful preprocessor already. So I'll use Smalltalk instead.)
Here's a little routine that can either calculate for quite a while, or use a lookup table to get the answer faster. CCF decides which version to use. (Note: don't worry about understanding the (probably buggy) code. Just know that comments in Smalltalk start and end with the double-quote character, and watch what CCF does with them. And, at least in the version I used, ! is magic in the "chunk file", which is the external textual representation that CCF would work on.)
Version using an external Memo dictionary:
Integer method fib
"recursive calculation of Fibonacci numbers"
"## ccf:init"
"we can't use bang easily, so ..."
"## hide ?"
| result |
"## if ccf:defined (use_memo)"
"I'll assume Memo is a Dictionary defined somewhere..."
result := Memo at: self ifAbsent: [
"## endif"
self <= 1
ifTrue: [ result := 1. ]
ifFalse [ result := (self - 1) fib + (self - 2) fib. ].
"## if ccf:defined (use_memo)"
Memo at: self put: result.
result ].
"## endif"
^ result.
For comparison, a version that doesn't have the Memo:
Integer method fib
"recursive calculation of Fibonacci numbers"
"## ccf:init"
"we can't use bang easily, so ..."
"## hide ?"
| result |
"## if ccf:defined (use_memo)"
"##? " "##? I'll assume Memo is a Dictionary defined somewhere..." "##? "
"##? result := Memo at: self ifAbsent: [ "
"## endif"
self <= 1
ifTrue: [ result := 1. ]
ifFalse [ result := (self - 1) fib + (self - 2) fib. ].
"## if ccf:defined (use_memo)"
"##? Memo at: self put: result. "
"##? result ]. "
"## endif"
^ result.