consider following,
long long int num = 4096;
the binary value for above number is 2^12 hence requires at least 12 bits for the storage. Now consider that the machine you are using runs on a 32 bit architecture.
now coming to your question,
== lg n == is used here to calculate the number of bits require to store the input size. here the no bits required is 12 as shown
lg n = lg 2^12 = 12 bits
but now we know that the total space is 32 bits hence if we want we can we can take more of the space but can we take less than 12 bits?
definitely no, we anyhow need at least 12 bits and that is why we need a constant c such that
c >= 1
this is to ensure that we don't get less than 12 bit for an instance let us consider if
c = 0.5
then in this case total bits assigned will be
c lg n = 0.5 * lg 2^12 = 6 bits
and this is less than the required hence c should be greater than 1 even if c = 2 which is greater than 1 creates no problem and assigns a total of 24 bits which is more than sufficient which is 12 bit but less than 32 bits which is the maximum word size
hence c is used to get at least the minimum size to store the word and in fact in real situation its always minimum.